Commit Graph

232 Commits

Author SHA1 Message Date
WerWolv 8a6b110d0b ux: Improve loading of encoding files, make advanced encoding enabled by default 2022-01-15 23:44:15 +01:00
WerWolv abac42826c fix: Many security and format issues 2022-01-15 14:14:53 +01:00
WerWolv 012b82c395 fix: Crash on exit due to bug in libromfs 2022-01-15 02:46:24 +01:00
WerWolv 3f936b57f5 sys: Added a bunch of logging 2022-01-13 14:34:27 +01:00
WerWolv 54785b29dd api: Moved file extension handling to plugin and added API 2022-01-13 14:34:19 +01:00
WerWolv c88d428fb5 sys: std::filesystem -> fs 2022-01-13 14:33:30 +01:00
WerWolv 27c08c1edf fix: SSL verification being broken due to a off-by-one error 2022-01-13 09:05:16 +01:00
WerWolv 1f8c9b9f71 api: Move copy-as data formatting code to builtin-plugin, add api for it 2022-01-13 00:27:31 +01:00
WerWolv 25df658653 fix: ImHex directories not being created correctly 2022-01-12 09:02:03 +01:00
WerWolv 6b20a9bdd5 patterns: Fix local variables holding larger values than allowed 2022-01-12 08:59:14 +01:00
WerWolv d399a6427a sys: Use custom literals for scaled values 2022-01-11 23:48:18 +01:00
WerWolv b9034523b5 patterns: Allow [[format]] attribute to work with custom types 2022-01-11 19:35:28 +01:00
WerWolv e35ea13f60 sys: Improved view const-correctness 2022-01-10 21:05:37 +01:00
WerWolv d38d261bbc provider: Fixed applying of IPS patches. Handle applying asynchronously 2022-01-09 21:27:59 +01:00
WerWolv 4e636381fd fix: Magic and EOF value for IPS and IPS32 patches not getting added properly 2022-01-09 20:16:05 +01:00
WerWolv 077bc45b7d fix: Many format string warnings on MacOS and some Linux distros 2021-12-31 01:10:06 +01:00
WerWolv 0884025b82 patterns: Added continue and break statements to arrays of structs 2021-12-30 18:31:24 +01:00
WerWolv 3ce0f8f4a8 patterns: Added break and continue statements for loops 2021-12-30 14:44:46 +01:00
WerWolv 936d1d6072 sys: Moved to a better shortcut handling system 2021-12-23 15:11:38 +01:00
WerWolv 85f276c259 resources: Start using libromfs to embed resources 2021-12-22 15:06:16 +01:00
qxxxb 28e51309cc
Fix saving files (#382) 2021-12-22 13:36:26 +01:00
qxxxb b047fc0063
Store environment variables and use on restart (#380)
- Fixes WerWolv/ImHex#373
2021-12-22 13:16:51 +01:00
WerWolv ad223a4e5c sys: Refactor pattern language api functions a bit 2021-12-20 20:40:28 +01:00
WerWolv 376cb01a16 patterns: Disallow calling of dangerous functions by default
Closes #330
2021-12-19 12:32:15 +01:00
WerWolv ea92e17ca0 patterns: Added basic support for in/out variables 2021-12-18 22:56:36 +01:00
WerWolv bc53109a1f sys: Added timeout setting to curl code. Make splash screen not hang as long 2021-12-17 09:52:58 +01:00
WerWolv 891cc42f08 ui: Added global running tasks progress bar 2021-12-16 23:48:52 +01:00
WerWolv 6b22464771 fix: Loading a project crashes imhex 2021-12-16 10:07:31 +01:00
WerWolv 23085aee6d fix: Heap(?) corruption when one of ImHex's resource paths points to a file instead of a directory 2021-12-15 00:21:34 +01:00
WerWolv 51474b2eae ui: Added icon to footer when ImHex has elevated permissions 2021-12-13 22:58:23 +01:00
WerWolv b2a9965617 api: Improved Provider registering api, hide implementation functions better 2021-12-12 11:52:58 +01:00
WerWolv 3e736b36b6 api: Refactored providers to allow for loading interfaces and config views 2021-12-12 00:41:44 +01:00
WerWolv e3106eaa2a ux: Use native APIs to open websites to prevent terminal from appearing 2021-12-10 16:10:34 +01:00
WerWolv 8f2e382c8a patterns: Added std::env and ability to pass parameters to patterns from the UI 2021-12-10 11:55:27 +01:00
WerWolv 6a0ad22774 fix: Inconsistent provider address reading 2021-12-09 21:10:24 +01:00
WerWolv 808b051a3e sys: Fixed sockets compiling on MacOS 2021-12-07 23:21:07 +01:00
WerWolv c55146a78c sys: Fix sockets compiling on Unix 2021-12-07 23:09:30 +01:00
WerWolv cc5a437573 provider: Added basic GDB Server provider 2021-12-07 22:47:57 +01:00
WerWolv 4a53717676 sys: Moved all views to builtin plugin 2021-12-07 22:47:41 +01:00
WerWolv a000b1a2fe common: Added missing include 2021-12-03 00:00:25 +01:00
WerWolv ded452fdfc patterns: Allow functions to be called inside structs 2021-11-27 12:57:59 +01:00
RADICS Áron 467e9d1463
Tests for the CRC and hash algorithms (#335)
* Update TEST_ASSERT to do nothing if condition is true

The TEST_ASSERT should not return if the condition is true, because:
- it prevents the usage of multiple TEST_ASSERT in a single test case,
- that behavior differs from how the assert in the standard library
works, and thus may give unexpected results.

Make the TEST_ASSERT to print an error message (with an formatted
optional user part) when it fails to make debugging easier.

* Fix some bugs in TestProvider, add unit tests

Use pointer-to-vector in TestProvider so writes can be tested, too.

* Add test EncodeDecode16, fix some encode16 bugs

The function mbedtls_mpi_write_string needs a bit longer buffer than the
resulting string actually will be.

Known bug: mbedtls_mpi_read_binary ingores initial null bytes

* Add test EncodeDecode64, fix some bugs

The functions mbedtls_base64_encode and mbedtls_base64_decode needs a
bit longer buffer than the resulting string actually will be.

* Remove check for empty data from TestProvider

It can be valid to get the hash of empty string.

* Add tests for CRC calculation

Two type of thests:
- compare the result of the CRC calculation to a known to be good
results,
- generate random data as message, calculate of it's CRC and append that
to the message, the CRC of this new data should be 0.

* Add test for hash algorithms

* Add includes in tests

* Remove the use of C++20 ranges

It seems that Apple Clang does not support range-based constrained
algorithms at this time.

* Replace encode16 implementation

To encode the zero bytes at the begining of the input vector, too.
2021-11-26 22:14:44 +01:00
WerWolv aa527ba29b patterns: Fixed double free crash 2021-11-21 00:48:07 +01:00
WerWolv 673d43b526 sys: Fixed copy-paste error 2021-10-31 16:36:45 +01:00
WerWolv c88053a575 windows: Added context menu entry option
Closes #333
2021-10-31 16:28:10 +01:00
WerWolv cd89b55f5b patterns: ASTNode and LogConsole cleanup 2021-10-31 15:06:48 +01:00
RADICS Áron a6b8597f5a
Fix CRC and hash calculations (#321)
* Fix CRC calculation, add more CRC parameters

Use the Boost CRC module to calculate the CRC values.
Add options for final xor value, reflectIn and reflectOut.
Fixes #320

* Cleanup Hash view combo box, add CRC8

* Use offset/size consistently

* Cleanup: unify processing data by chunks

* Change CRC algorithm back, drop boost dependency

This is mostly the original algorithm, with a few fixes and small
additions (support for reflect In / Out, final XOR value).

* Use size_t for file read size consistently
2021-10-26 17:21:48 +02:00
WerWolv 7562e8b172 patterns: Fixed #include not properly searching all include folders 2021-10-19 21:42:04 +02:00
WerWolv 929437c159 patterns: Added global variables 2021-10-19 18:33:59 +02:00
WerWolv 46ba46ce9d
build/plugins: Added initial support for Rust plugins (#327)
* build: Added initial support for Rust plugins

* github: Install correct rust version

* github: Fixed rustup command

* github: Fix swapped win/linux commands

* github: Install linux rust toolchain on Linux

* github: Add rustup parameters to correct command

* build: libimhex-rust -> hex

* rust-plugins: Disable optimization to export functions correctly

* build: Use cdylib instead of dylib

* build: Fixed rust building and artifact copying

* build: Fixed installing plugins

* build: Fix copying and installing on Windows

* github: Added windows debugging

* github: Use curl instead of wget

* github: Added debug on failure

* github: Update path variable with rust toolchain path

* build/github: Set rust location so cmake can find it

* build: Remove leftovers

* api: Added rust wrappers for the ImHexAPI

* rust: Fixed compile flags with older gcc/clang

* build: Enable concepts for cxx.rs

* build: Explicitly set compiler for cxx.rs

* rust: Added imgui-rs to libimhex-rust

* rust: Export functions with double underscore prefix on mac

* rust: Export functions adjusted for ABI

* Add Rust target folder to gitignore

* Add vendored imgui-rs copy

* Add Context::current() to vendored imgui-rs

* Fix libimhex not exporting cimgui symbols

* Simplify plugin export mangling

* build: Fixed cimgui linking

* build: Only specify --export-all-symbols on Windows

* Add context setting to Rust plugins

* rust: Cleanup

* deps: Update curl

Co-authored-by: jam1garner <8260240+jam1garner@users.noreply.github.com>
2021-10-16 11:37:29 +02:00