1
0
mirror of synced 2024-12-05 20:47:57 +01:00
Commit Graph

1896 Commits

Author SHA1 Message Date
WerWolv
e57481b87c tools: Added file shredder, splitter and combiner 2021-09-22 17:56:06 +02:00
WerWolv
755642862f patterns: Added recursion and array size limit pragma 2021-09-22 00:45:04 +02:00
WerWolv
d1c05174b6 patterns: Allow casting integers to str 2021-09-21 23:45:45 +02:00
WerWolv
85b8698e35 patterns: Add std::mem::read_string 2021-09-21 23:29:30 +02:00
WerWolv
9dd555f111 build: Added minimum library versions to cmake 2021-09-21 22:21:43 +02:00
WerWolv
7df1ff07a7 lang: Added diffing view localization 2021-09-21 22:06:30 +02:00
xtex
eb779c5986
i18n: more zh_CN, fix: crashes when connecting with no COM port, feat: remove View suffix for view menu (#305)
* fix: crashes when connecting with no COM port

* feat: remove `View` suffix for view menu

* i18n: add more to Chinese(Simplified)

* Revert "Merge branch 'master' of github.com:xtexChooser/ImHex"

This reverts commit 8afcfe8f9d, reversing
changes made to 7651ad6661.
2021-09-21 21:30:52 +02:00
WerWolv
c051f5d3e7
patterns: Rewrite evaluation engine (#306)
* patterns: Rewrite most of the evaluator to mainly use polymorphism instead of just RTTI

* patterns: Fixed a couple of AST memory leaks

* patterns: Parse string operations correctly

* patterns: Various fixes and cleanup

* patterns: Implement primitive function definitions

Function parameters now need to provide their type in the definition

* patterns: Added function variable definition and assignment

* patterns: Added remaining function statements

* patterns: Added unsized and while-sized arrays

* patterns: Added multi variable declarations to functions

* patterns: Added std::format built-in function

* patterns: Allow passing custom types to functions

* patterns: Added attributes and new "format" attribute

* patterns: Use libfmt for std::print instead of custom version

* patterns: Remove unnecessary string compare function

* pattern: Fix preprocessor directives

* patterns: Fix unit tests

* patterns: Added cast expression

* patterns: Handle endianess in function parameters

* patterns: Added casting to different endian

* patterns: Added 'str' type for functions
2021-09-21 21:29:18 +02:00
WerWolv
ed9e463550 ui: Added diff view 2021-09-21 19:54:13 +02:00
WerWolv
a7ebf1f60e build: Adjust old file name in cmake 2021-09-21 03:20:17 +02:00
WerWolv
6ab0ec547c ui: Make footer items jump around less 2021-09-21 03:10:09 +02:00
WerWolv
26a0352851 tests: Fixed unit test compiling 2021-09-21 02:48:41 +02:00
WerWolv
8631cb0c2a sys: Allow multiple files to be loaded simultaneously 2021-09-21 02:29:54 +02:00
WerWolv
a302448b76 tools: Fixed regex replacer 2021-09-20 23:50:37 +02:00
WerWolv
fef072f721 ui: Moved hex editor settings to settings menu 2021-09-20 23:40:36 +02:00
WerWolv
c5cd6422c6 fix: Settings menu closing when changing language 2021-09-20 20:42:30 +02:00
xtex
5edc0b876c
i18n: Chinese(Simplified) (#303)
* feat(i18n): add Chinese(Simplified) translations

* feat: keep console window on Windows for debug builds

* feat(18n)

* feat(i18n): improve Chinese translation

* fix: unify the line terminators

* feat(build): formatting

* fix: exclude from SysWow64 for 64bits windows

* Revert "fix: exclude from SysWow64 for 64bits windows"

This reverts commit a6d66a4a56.

* Revert "feat: keep console window on Windows for debug builds"

This reverts commit 9fd4699c9f.
2021-09-20 18:41:22 +02:00
WerWolv
131699d309 ui: Fixed language list crashing 2021-09-20 12:44:12 +02:00
WerWolv
bf493c5763 ui: Add follow system theme option 2021-09-16 22:23:51 +02:00
WerWolv
d3fb00d441 sys: Allow resources to be placed in appdata on windows 2021-09-13 23:55:50 +02:00
WerWolv
01670e5e85 patterns: Ignore superfluous semicolons 2021-09-13 10:48:45 +02:00
WerWolv
82cc528c49 api: Fix loading of string array settings (Recent files) 2021-09-12 20:29:05 +02:00
WerWolv
1df64031c8 patterns: Fix bitfield member access 2021-09-12 20:29:05 +02:00
WerWolv
ea2d181741 utils: Fix file wrapper 2021-09-12 20:29:05 +02:00
WerWolv
132fc181cd patterns: Fix bitfields with unaligned sizes
Correction for #292
2021-09-12 14:28:13 +02:00
WerWolv
987840e480 sys: Fixed settings not initializing correctly 2021-09-12 13:59:23 +02:00
WerWolv
86096708da patterns: Fixed bitfields not respecting endian setting
Various other improvements. Fixes #292
2021-09-12 13:08:52 +02:00
WerWolv
635f0606e0 patterns: Fixed enums not counting properly 2021-09-11 23:14:22 +02:00
WerWolv
8396e40fa0 tests: Added initial test structure 2021-09-11 14:41:18 +02:00
WerWolv
a5274daeaa patterns: Fixed padding not padding 2021-09-10 22:12:37 +02:00
WerWolv
36f51c427b ui: Added "Quit ImHex" option to File menu 2021-09-10 21:48:51 +02:00
WerWolv
b3d102419b sys: Fixed opening custom protocols in the web browser 2021-09-10 21:42:35 +02:00
WerWolv
f96e529230 patterns: Fixed parent keyword 2021-09-10 21:00:18 +02:00
WerWolv
717f78ce7f patterns: Fix negative array sizes causing crashes 2021-09-10 17:33:02 +02:00
WerWolv
31ef6173a1 lang: Updated Italian translation. Thanks to @CrustySean 2021-09-10 15:30:49 +02:00
WerWolv
f0697679f4 sys: Add local search for plugins and resources on Linux 2021-09-10 15:30:49 +02:00
WerWolv
8657cf26de fix: Data inspector causing crashes when failing to decode UTF-16 chars 2021-09-10 15:30:49 +02:00
WerWolv
1a9e3944dc patterns: snake_case all built-in functions 2021-09-09 23:18:10 +02:00
WerWolv
1da2ca1eb8 ui: Added ImHex's official documentation to help menu and welcome screen 2021-09-09 23:17:55 +02:00
WerWolv
ccac2e497d sys: Finish implementing constants view and its store 2021-09-09 12:58:44 +02:00
WerWolv
a1d9794c0e lang: Correct spelling mistakes. Thanks to @friedkeenan 2021-09-09 10:22:58 +02:00
WerWolv
6ee8c37cf5 ui: Fixed duplicate store localization ids 2021-09-09 02:03:39 +02:00
WerWolv
a8c9e96b72 fix: Inverted logic when checking for libmagic error 2021-09-09 01:56:48 +02:00
WerWolv
4cc637c0b2 sys: Finish up the online store 2021-09-08 17:22:54 +02:00
WerWolv
4b41ae6980 sys: Include correct file for size_t 2021-09-08 16:41:00 +02:00
WerWolv
e74c0f5cf5 sys: Tons of long overdue cleanup
- std::string -> const std::string& where needed
- Added a FileIO abstraction class
- Fixed recent files not updating
- Removed localization file from global include
- Renamed lang to pattern_language/pl
- Renamed EventFileDropped to RequestFileOpen
2021-09-08 15:18:24 +02:00
WerWolv
d7707bae62 fix: Multiple definitions of literals 2021-09-06 23:08:02 +02:00
WerWolv
ee7c6a91a7 patterns: Add optimization for arrays of statically sized types 2021-09-06 20:35:38 +02:00
WerWolv
6879cf765f sys: Cleanup libmagic mess 2021-09-06 16:15:05 +02:00
WerWolv
f29febdc86 patterns: Fix unions causing crashes on cleanup 2021-09-03 10:30:40 +02:00
WerWolv
4b40546750 views: Add simple pattern, library and magics store 2021-09-03 02:34:40 +02:00
WerWolv
fcfaaacdcc patterns: Fix enum constant resolution 2021-09-03 02:33:45 +02:00
WerWolv
68d72eac16 sys: Move imhex path resolution away from utils 2021-09-03 02:33:15 +02:00
WerWolv
19c367b540 ui: Added strings to data inspector 2021-09-01 02:01:50 +02:00
WerWolv
82cb7917e4 ui: Added half floats to data inspector 2021-09-01 00:23:45 +02:00
WerWolv
5d4b998be4 sys: Added missing optional header include 2021-08-31 20:03:08 +02:00
WerWolv
5f63db4a34 ui: Add first unifont plane by default 2021-08-31 15:22:00 +02:00
WerWolv
32eddbf581 ui: Fix wide characters and utf-8 display in inspector 2021-08-30 19:12:46 +02:00
WerWolv
ef9f0cfca7 sys: Fixed broken concept 2021-08-30 19:12:19 +02:00
WerWolv
633fa7213a sys: More compile time improvements 2021-08-29 22:15:18 +02:00
WerWolv
02d31d2d2a sys: First attempt at reducing build times 2021-08-29 14:18:45 +02:00
WerWolv
f60f9f9fc9 patterns: Fix endian settings not applying to char16 2021-08-29 11:10:48 +02:00
WerWolv
7285537d73 tools: Various fixes and improvements 2021-08-28 18:15:47 +02:00
WerWolv
12f975fa70 tools: Added input buttons to the calculator 2021-08-28 18:15:20 +02:00
WerWolv
c1751f39ae tools: Added wikipedia term definition search 2021-08-28 16:02:53 +02:00
WerWolv
3138d2c4a2 tools: Added Anonfiles uploader 2021-08-28 00:45:59 +02:00
WerWolv
c56159da89 sys: Only restart ImHex when a relevant setting changed 2021-08-27 09:57:03 +02:00
WerWolv
d0aec62997 patterns: Move builtin functions to namespace. Add string functions 2021-08-27 09:56:20 +02:00
WerWolv
b7003d499c patterns: Fix function parsing 2021-08-27 09:54:34 +02:00
jam1garner
76f550d9e7
ui: Format floats sensibly (#281)
* Use general form with scientific notation as fallback (i.e. `{:G}`)
2021-08-25 20:01:01 +02:00
WerWolv
c053d54d10 patterns: Add multi-variable declarations 2021-08-25 17:54:47 +02:00
WerWolv
9289ebf4c9 patterns: Initial namespace support 2021-08-25 17:07:01 +02:00
WerWolv
4ea6f61c52 lang: Added run command localization 2021-08-22 22:11:36 +02:00
WerWolv
d3a227d0bc sys: Fixed open webpage command, added run command 2021-08-22 21:43:31 +02:00
WerWolv
c84c106b17 ui: Add tips of the day 2021-08-22 21:11:01 +02:00
WerWolv
66f94a452d net: Fix SSL verification with curl
This fixes update detection
2021-08-22 20:22:46 +02:00
WerWolv
6e0249d6ea sys: Bye bye glad 2021-08-21 15:03:44 +02:00
WerWolv
72cf94106c ui: Add interface scaling setting. Closes #7, #283 2021-08-21 13:55:21 +02:00
WerWolv
8ad0239bca ui/ux: Implement toolbar button functions 2021-08-21 13:53:50 +02:00
WerWolv
37d2d58d2f ui: Added toolbar 2021-08-21 00:52:11 +02:00
WerWolv
0f45bef980 sys: Update ImGui and ImPlot 2021-08-21 00:51:50 +02:00
WerWolv
63f4d553cc ui: Add tooltips to custom titlebar buttons 2021-08-18 23:12:27 +02:00
WerWolv
b66304fc91 ui: Use borderless window on Windows 2021-08-18 22:36:46 +02:00
WerWolv
48f27c2174 sys: Added "Restore auto backup" popup on first launch after crash 2021-08-17 22:54:09 +02:00
WerWolv
f9f67d3bcd sys: More mac os compile fixes 2021-08-17 21:55:06 +02:00
WerWolv
2ac1a58d5e sys: Fix resource embedding on macos 2021-08-17 18:24:15 +02:00
WerWolv
a53cfaa63a sys: Make crypto wrapper compatible with mbedtls 2 and 3 2021-08-17 17:28:33 +02:00
WerWolv
4d677f430b sys: Save project backup if ImHex crashes 2021-08-17 13:41:44 +02:00
WerWolv
41db0bfafa ui: Fixed welcome screen banner and hyperlink rendering 2021-08-16 23:55:06 +02:00
WerWolv
f8ed89ee2c patterns: Allow bitfield fields to be accessed as like other members 2021-08-16 23:05:23 +02:00
WerWolv
0093d4418e ui: Added icons to welcome screen 2021-08-04 14:01:24 +02:00
WerWolv
132164c3de patterns: Fix type operators not working correctly 2021-08-02 12:08:54 +02:00
WerWolv
2c71f61bfc git: Improve indexing performance of repo 2021-07-31 18:33:55 +02:00
WerWolv
92bb852921 fix: Resource embedding not working on Windows 2021-07-31 17:46:09 +02:00
WerWolv
d345508195 fix: ImHex should crash less often now when exiting 2021-07-31 17:11:10 +02:00
WerWolv
e8d77f8269 sys: Embed resources into rodata 2021-07-31 17:10:19 +02:00
WerWolv
bca7f738a1 patterns: Fixed local member access not working 2021-07-31 12:18:32 +02:00
WerWolv
f4046fb8fc fix: Keyboard shortcuts didn't work. Added Select all menu item 2021-07-29 21:09:18 +02:00
WerWolv
330b4504dc sys: Updated curl, libfmt, nativefiledialog and yara to latest version 2021-07-28 13:23:50 +02:00
WerWolv
07ad9ed772 tools: Added UNIX permissions calculator 2021-07-27 22:46:37 +02:00
WerWolv
af1d687758 fix: ImHex using way too much resources still
Now frames are rendered at only 5 FPS if no input events are being processed. Thanks a lot to @Tey. Properly fixes #189 now
2021-07-27 21:50:49 +02:00
WerWolv
2ccf8e777c sys: Added create file and resize option
Fixes #172
2021-07-27 21:07:36 +02:00
WerWolv
405b97e4d3
fix: is_integral and is_signed causing errors on >= gcc 11
This fixes #265
2021-07-19 01:11:28 +02:00
WerWolv
35c7f826bc views: Added constants search view 2021-06-26 01:18:33 +02:00
WerWolv
1e1cdb0ef0 patterns: Fixed multiple parse and evaluate issues 2021-06-22 16:04:47 +02:00
WerWolv
fde5b39495 patterns: Added function while loops 2021-06-21 00:21:38 +02:00
WerWolv
c9fae32ddf patterns: Added function if statements, improved returns 2021-06-20 23:46:13 +02:00
WerWolv
7f0bdc95da patterns: Added support for declaring custom functions 2021-06-20 21:22:31 +02:00
Foster Brereton
ac53b4bcab
Add rpath to binary executable on macOS (#258)
* removing superfluous slash from paths

* Add a necessary rpath to the imhex binary

* add a little error handling to dlopen

* fall back on en-US if no language specified in prefs

* PR changes as per @WerWolv
2021-06-18 20:09:36 +02:00
WerWolv
b4b2c41b34 patterns: Added hidden attribute 2021-06-17 23:42:43 +02:00
WerWolv
21f8fb4090 patterns: Added while statement for array sizing 2021-06-17 23:13:58 +02:00
Foster Brereton
3cef784f75
Drop deployment target flag from libimhex plugin (#257) 2021-06-17 20:26:12 +02:00
WerWolv
a7092ada08 fix: Parent keyword not working at all 2021-06-16 21:13:54 +02:00
WerWolv
35b92ac453 fix: Remove windows includes from built-in plugin files 2021-06-07 20:11:24 +02:00
WerWolv
e0112472d6 ui: Moved FPS counter to footer 2021-06-07 18:13:54 +02:00
WerWolv
7007fb53e7 ui: Added CPU usage to footer on windows 2021-06-06 19:18:14 +02:00
WerWolv
44000d2518 sys: Move windows-only footer items to the windows plugin 2021-06-06 19:17:51 +02:00
WerWolv
eaacb4d102 ui: Added proper localization for TTY Console 2021-06-06 18:19:17 +02:00
WerWolv
53c8f6ec74 sys: Fix crashes with TTY console, add sending of signals 2021-06-05 22:39:47 +02:00
WerWolv
d1b942cea5 plugin/windows: Fixed scrolling and last line displaying in TTY console 2021-05-29 23:47:08 +02:00
WerWolv
c22d1033eb plugin/windows: Added TTY Console view 2021-05-29 21:52:52 +02:00
WerWolv
c373174436 plugins: Added windows-only features plugin 2021-05-29 21:52:18 +02:00
WerWolv
21525a7261 ui: Added ImHex directories table to about page 2021-05-23 23:35:04 +02:00
Matthias Mailänder
e688d34587
build: Fix yara system lib detection and add support for fmt and curl (#241)
* find yara with pkgconfig

* Use system fmt and curl.

* Flip/unify system library conditional
2021-05-23 14:16:38 +02:00
Matthias Mailänder
db5402dc09
build: Use system libraries if so desired. (#210)
Co-authored-by: WerWolv <werwolv98@gmail.com>
2021-05-23 12:16:14 +02:00
WerWolv
fe977f4ba9 ui: Improve confusing "Quit application" popup text
This fixes #234
2021-05-21 23:59:28 +02:00
WerWolv
fee176dc72 nodes: Added data size node 2021-05-18 21:24:33 +02:00
WerWolv
0d11f4460f nodes: Allow data processor content to be stored in project files 2021-05-18 18:06:47 +02:00
WerWolv
ee2b412a10 nodes: Added primitive saving and loading mechanism
Not fully integrated yet. Also doesn't yet save any node settings, just nodes and links
2021-05-17 23:17:58 +02:00
WerWolv
4029c333ed patterns: Added UTF-16 character type and string parsing 2021-05-02 20:13:37 +02:00
WerWolv
d177d69724 fix: ImHex no longer behaves weirdly or crashes when no plugins are loaded 2021-04-21 23:31:51 +02:00
WerWolv
ea71389982 fix: Invalid type in integer literal ast node on mac 2021-04-21 10:37:14 +02:00
WerWolv
32d47456de patterns: Added array index syntax to rvalues and turned addressof/sizeof into operators 2021-04-21 10:17:42 +02:00
WerWolv
39b935affe build: Fix tons of useless build artifacts to be included on install 2021-04-20 22:11:50 +02:00
WerWolv
1f2fe6b93d sys: Merge splash screen and ImHex into one application
This fixes so many issues the previous implementation had, especially on Unix
2021-04-20 21:46:48 +02:00
WerWolv
5b692067d8 patterns/fix: Accessing variables in global scope no longer crashes 2021-04-18 20:26:23 +02:00
WerWolv
ebbbcafe5c
sys: Implement more functionality into splash screen (#223)
* build: Add libcurl

* build: Stop the whole static linking on Windows mess. There's no use anymore

* sys: Added update detector and moved some startup tasks to splash screen

* sys: Updated ImHex icon

* fix: Settings button on welcome page once again works

* build: Fix build on Linux

* sys: Fixed splash window not searching all paths for resources
2021-04-18 20:24:42 +02:00
WerWolv
93e1c4c4e8 sys: Drastically revamp the relative vs absolute address mess 2021-04-16 21:50:15 +02:00
WerWolv
72eac9f149 ux: Fixed goto to work with base addresses and added absolute goto 2021-04-16 19:44:52 +02:00
WerWolv
771bb22962 sys: Improve shortcut api 2021-04-16 19:43:54 +02:00
WerWolv
59dd372ec8 ux: Added support for pasting bytes 2021-04-16 17:01:01 +02:00
WerWolv
a3b3eeb56a ui: Improve how pointers are displayed in pattern data view 2021-04-16 15:59:13 +02:00
WerWolv
c3e41710c7 patterns: Properly apply base addresses to pointers 2021-04-16 10:11:10 +02:00
WerWolv
386ae7d8c3 fix: Using pointers no longer crashes ImHex 2021-04-15 15:56:39 +02:00
WerWolv
2e338ebc01 fix: Properly localize Undo and Redo 2021-04-14 09:03:41 +02:00
WerWolv
8314b147d5 patterns: Fix sign extension for signed types.
Fixes #216
2021-04-13 22:30:57 +02:00
WerWolv
cab3410d23 patterns: Fix members getting added multiple times 2021-04-13 22:08:02 +02:00
WerWolv
45b00c8b5f patterns: Make placements respect set base addresses and discard out of bounds variables 2021-04-13 21:50:24 +02:00
WerWolv
183b8770bb patterns: Added base_address pragma 2021-04-13 21:49:31 +02:00
WerWolv
950598911c patterns: Allow usage of types within itself and used out-of-order 2021-04-13 20:40:21 +02:00
WerWolv
8a485575f5 ui: Added recent files to File menu 2021-04-13 08:41:59 +02:00
WerWolv
959988a670 fix: Stop all views from opening automatically on launch 2021-04-12 21:08:36 +02:00
WerWolv
907f25c231 patterns: Added parent keyword to access members of the parent struct 2021-04-12 20:49:37 +02:00
WerWolv
2f19ff768d sys: Improved ScopeGuard syntax a lot 2021-03-31 22:54:43 +02:00
WerWolv
a2c80e3fd6 patterns: Fixed enum constant literals not being interpreted as correct type 2021-03-31 22:10:06 +02:00
WerWolv
356273d71e bug: Fix binary value in base converter being shifted by one
Fixes #212
2021-03-30 18:38:28 +02:00
WerWolv
6223b26888 ui: Added hex editor highlight opacity setting 2021-03-29 23:07:18 +02:00
WerWolv
147aefc7e5 ux: Add close file button to file menu 2021-03-29 22:44:35 +02:00
WerWolv
0cc7004d0d ux: Show currently loaded file name in window name 2021-03-29 22:44:23 +02:00
WerWolv
a17bc43d80 lang: Improved Italian translation 2021-03-27 19:13:46 +01:00
WerWolv
d805d976a6 sys: Replace the terrible event manager with a much better one 2021-03-27 11:36:36 +01:00
WerWolv
688ca01b1b ux: Added undo and redo option 2021-03-26 21:43:24 +01:00
WerWolv
2a7b698a3d prv: Make data overlays work everywhere, not just in the hex editor view 2021-03-21 14:50:47 +01:00
WerWolv
ef747cc4c0 sys: Explicitly delete views so destructors get called properly 2021-03-16 22:44:37 +01:00
WerWolv
b7dd936dae patterns: Fixed ternaries not being proper numeric expressions 2021-03-16 21:29:14 +01:00
WerWolv
f34b946ea9 patterns: Fixed eval_depth default and preprocessor errors 2021-03-15 08:11:19 +01:00
WerWolv
ee10322603 nodes: Added buffer combine, slice and repeat nodes 2021-03-07 13:44:22 +01:00
WerWolv
af444999bf ui: Added used memory footer item on Windows 2021-03-07 13:20:55 +01:00
WerWolv
8423f78586 nodes/patterns: Fixed crashes when recursion occurred 2021-03-07 13:20:33 +01:00
WerWolv
d4265f16eb node: Added arithmetic nodes (add, sub, mul, div, mod) 2021-03-06 14:46:47 +01:00
WerWolv
6cba868e20 sys: Added FPS limit, some power saving
#189
2021-03-06 13:09:20 +01:00
Robin Lambertz
4f98149fa7
api: Fix various crashes on bad settings data. (#186)
getSetting now returns a straight nlohmann::json instead of an optional.
If the data isn't present, it will return a json null.

All accesses to the settings will first check that the data has the
expected type.
2021-03-06 12:40:29 +01:00
tomGER
32cfaac1e2
lang: Small corrections to de_DE (#193)
* Small corrections to German translation

* Change wording of match_selection
2021-03-04 16:22:18 +01:00
Crusty ★
d954d9280f
lang: Added Italian translation (#196)
* Added Italian (IT) translation

* Address fixes

* fix missing file in CMakeList
2021-03-04 13:52:35 +01:00
WerWolv
0ad0a91fa4 build: Use libfmt as header-only library instead 2021-03-03 23:33:44 +01:00
WerWolv
c18cb9f61e build: Compile libfmt with -fPIC 2021-03-03 22:51:09 +01:00
WerWolv
4a908a314f lang: Added German translation, improved language handling 2021-03-03 22:26:17 +01:00
WerWolv
188723e888 sys: Replace printf formatting with libfmt 2021-03-03 19:58:22 +01:00
WerWolv
4e86d874a7 sys: Fixed one missed api call update on non-windows 2021-03-02 23:15:15 +01:00
WerWolv
8646fb4487 patterns: Prevent division by zero 2021-03-02 22:55:23 +01:00
WerWolv
a91afdb6ae ux: Allow copying value from data inspector 2021-03-02 22:09:38 +01:00
WerWolv
b6939654b3 lang: Fix color attribute not being applied to array entries 2021-03-02 14:23:06 +01:00
WerWolv
3a7a3a6e9c lang: Add dataSize function to get size of loaded data 2021-03-02 13:55:43 +01:00
WerWolv
de327cf3a4 ui: Make use of ImPlot to drastically improve information view 2021-03-02 13:49:45 +01:00
WerWolv
f1c03f8b1d sys: Place config files in AppData/Local/imhex folder on Windows
Fixes #182
2021-03-02 10:20:29 +01:00
WerWolv
7a2b3397a3 repo: Cleanup 2021-03-01 09:03:13 +01:00
WerWolv
3e6865ffa9
sys/build: Properly support per-system metadata file paths (#181)
* sys: Move away from metadata paths next to executable in the application

Build system doesn't properly install / pack stuff yet

* build: Updated README to contain better install instructions

* sys: Search for imhex resource files in ~/Application Support

* sys: MAX_PATH -> PATH_MAX

* sys: Seach for imhex resource files in Application Support using NSFileManager (#180)

* sys: Allow for multiple file search paths

Also use install prefix instead of just /usr on Linux

* build: Fixed IMHEX_INSTALL_PREFIX macro definition

* build: Fix duplicate switch entry on Linux

* docs: Updated readme to properly reflect new paths and dependencies

* sys: Install files in their proper paths on linux (#183)

* Install files in their proper paths on linux

* Only create user directories

* Follow the XDG specification on linux

XDG specification specifies how to find config and data directories on
linux systems. Specifically, it says this:

- Data should be written to $XDG_DATA_HOME
- Config should be written to $XDG_CONFIG_HOME
- Data should be read from $XDG_DATA_HOME:$XDG_DATA_DIRS
- Config should be read from $XDG_CONFIG_HOME:$XDG_CONFIG_DIRS

The default values are this:

- XDG_DATA_HOME: $HOME/.local/share
- XDG_CONFIG_HOME: $HOME/.config
- XDG_DATA_DIRS: /usr/share:/usr/local/share
- XDG_CONFIG_DIRS: /etc/xdg

Platforms with non-standard filesystems (like NixOS) will correctly set
up those environment variables, allowing softwares to work unmodified.

In order to make integration as simple as possible, we use a simple
header-only dependency called XDGPP which does all the hard work for us
to find the default directories.

* Look for plugins in all Plugin Paths

If the plugin folder was missing from one of the PluginPaths, we would
immediately stop loading plugins. We now keep looking even if one of the
path is missing.

Co-authored-by: Nichole Mattera <me@nicholemattera.com>
Co-authored-by: Robin Lambertz <unfiltered@roblab.la>
2021-03-01 08:56:49 +01:00
WerWolv
e6dc731921 build: Fixed libyara building on MacOS 2021-02-26 17:29:57 +01:00
WerWolv
31e5ec7bc3
Add Yara rule matching interface (#178)
* build: Added YARA as submodule

* ui: Added basic yara rules matching interface

* build: Make libyara link libpthread on Unix

* ui: Add jump-to feature to yara matches list

* yara: Add more modules and patch yara to support mbedtls crypto

* yara: Started to fix scanning of bigger data

* yara: Fixed implementation

* ui: Improved yara matcher interface and added localization

* build: Ignore changed files in yara submodule

* yara: Fixed rules matching agianst entire file

* yara: Properly handle compiler errors
2021-02-26 13:35:19 +01:00
WerWolv
26b881e4c9 imgui: Fixed fontawesome 2021-02-25 21:50:57 +01:00
WerWolv
93802f5872 patterns: Always interpret color attribute value as hexadecimal 2021-02-25 12:08:46 +01:00
WerWolv
4a1de5d1cb bookmarks: Added ability to lock bookmarks 2021-02-24 21:42:18 +01:00
WerWolv
0af8b8155f ui/ux: Give up on custom ImGui file browsers and just use the system one 2021-02-22 23:36:13 +01:00
WerWolv
7f97416e6e ui/ux: Improve data analyzer interface, make it run asynchronously 2021-02-22 13:08:06 +01:00
WerWolv
3cbbfb1782 lang: Localize provider data information strings 2021-02-22 13:07:25 +01:00
WerWolv
ced9706c5b ui: Turned spinner into ImGui widget 2021-02-22 13:06:53 +01:00
WerWolv
0e2add204b ux: Disassemble asynchronously 2021-02-22 11:56:33 +01:00
WerWolv
490c7e8fec ux: Search for strings asynchronously 2021-02-22 10:16:58 +01:00
WerWolv
a4b4360df6 patterns: Fixed more memory leaks 2021-02-22 10:01:58 +01:00
WerWolv
0a29f25330 ui: Open all views and create default layout on first launch 2021-02-21 13:49:03 +01:00
WerWolv
5532a0673f ui: Localized new strings 2021-02-20 22:41:17 +01:00
WerWolv
615a96f9d8 api: Improved documentation 2021-02-19 17:36:10 +01:00
WerWolv
0da508594b ui/api: Added loaded plugin information to welcome screen 2021-02-19 13:22:12 +01:00
WerWolv
89643d1538 lang: Added some strings that went missing 2021-02-19 11:16:09 +01:00
WerWolv
9900a51757 patterns: Fixed multiple severe memory leaks
#163 - probably not all yet
2021-02-19 10:51:30 +01:00
WerWolv
e8027293bf Disabled multi viewports support on Linux as it didn't work well
Also cleanup and fixing a typo
2021-02-18 17:10:56 +01:00
WerWolv
0e00555703 Added Footer and API for it and the welcome screen 2021-02-18 12:09:19 +01:00
WerWolv
a251c7325a Fixed copy-paste error in pattern language evaluator 2021-02-17 21:04:59 +01:00
WerWolv
460d5a9386 Various fixes and improvements 2021-02-17 14:47:25 +01:00
WerWolv
df06dd49c5 Added better settings API that handles errors better
This fixes #161
2021-02-16 23:42:35 +01:00
WerWolv
b4c2f7d371 Implemented crude support for custom encodings via thingy files
Relevant issue: #26
2021-02-14 01:11:55 +01:00
WerWolv
424bba71f7 Fixed localization issues when using the content registry 2021-02-13 15:15:32 +01:00
WerWolv
36a4930b35 Implement localization all throughout ImHex
English only for now, additional languages will come in the future
2021-02-11 23:09:45 +01:00
WerWolv
9227fba474 Revamped language system right away again to allow plugins to use it 2021-02-11 00:35:30 +01:00
WerWolv
4a8e59a95b Fixed multiple definitions of _lang user defined literal 2021-02-10 23:38:51 +01:00
WerWolv
bd5da4a36e Added Language setting and localization wrapper 2021-02-10 18:17:09 +01:00
WerWolv
a926b7b912 Added buffer constant node 2021-02-08 23:17:30 +01:00
WerWolv
179e222919 Fixed command palette and added /web command 2021-02-08 19:56:04 +01:00
WerWolv
1b98afe37d
Fix mbedtls finding on macos (#156) 2021-02-07 22:57:34 +01:00
WerWolv
8e7bfb7f1a Fixed some popups not appearing when no views are open 2021-02-07 14:29:13 +01:00
WerWolv
5b38c43b7e Fixed plugin loading and closing issues mainly on Windows
This fixes #87
2021-02-07 13:40:47 +01:00
WerWolv
4d7d449cea Added base converter to tools window 2021-02-05 00:17:56 +01:00
WerWolv
ac100936c7 Added comments node 2021-02-04 12:46:38 +01:00
WerWolv
5eb289f1fe Added proper error messages to data processor 2021-02-04 01:14:05 +01:00
WerWolv
91d05c5de6 Added AES decryption node 2021-02-04 00:21:53 +01:00
WerWolv
ac019a7d7e Fixed build on Unix, move crypto wrapper to libimhex 2021-02-03 11:54:41 +01:00
WerWolv
8c306a5d3d Make views get auto deleted 2021-02-03 00:56:33 +01:00
WerWolv
fa352b6917 Fixed linker warnings on plugins 2021-02-02 00:39:47 +01:00
WerWolv
d69eee55dd Added recent files selection to Welcome screen 2021-02-01 19:03:45 +01:00
WerWolv
d9ec628333 Allow reading and writing settings through code 2021-02-01 19:03:28 +01:00
WerWolv
8603ec1c99 Fixed 64 bit value display in data inspector once again 2021-02-01 01:12:23 +01:00
WerWolv
ee8e1996d9 Allow reading of empty buffers passed to a node as input 2021-01-31 21:49:13 +01:00
WerWolv
744b9f574c Fixed node links not connecting properly anymore 2021-01-31 18:59:47 +01:00
WerWolv
f259e347aa Greatly improved Nodes API 2021-01-31 16:11:25 +01:00
WerWolv
5a59bc2abc Added casting and control flow nodes to data processor 2021-01-31 01:42:29 +01:00
WerWolv
8dd76a6cc8 Added error messages for file opening issues 2021-01-31 00:05:07 +01:00
WerWolv
073eee8fab Further improved UI/UX of welcome screen 2021-01-30 23:02:03 +01:00
WerWolv
5c7a529fa1
Added Data Processor using Nodes (#152)
* Added imnodes

* Added basic data processor view. Still needs to be cleaned up

* Make sure all attached links get properly removed when a Node is deleted

* Cleanup and API exposing

* Added data provider overlays and integrate them with the data processor

* Optimized data processing

* Node UI enhancements

* Added support for all themes to the nodes editor

* Improved data processor context menus

* Fixed data processor context menu showing up everywhere

* Make hex editor context menu behave the same as data processor one

* Add different node pin types and prevent incompatible ones from being connected

* Don't require explicitly marking node as end node

* Fixed plugin copying

* Added some more nodes
2021-01-30 22:39:06 +01:00
WerWolv
a3d71b1dca Added support for Home, End, PageUp and PageDown in hex view
Resolves #148
2021-01-28 13:23:50 +01:00
WerWolv
319068eef5 Implemented Open File and Preferences button in Welcome screen 2021-01-27 14:26:24 +01:00
WerWolv
49b5deb9f4 Added back missing semicolons... 2021-01-27 01:11:14 +01:00
WerWolv
8990fad85a Make File Dialogs less hacky 2021-01-27 00:44:10 +01:00
WerWolv
ab2458bdf4 Make links in About page actual hyperlinks 2021-01-27 00:00:20 +01:00
WerWolv
b58bc685e1 Extra formatting check in hex::format 2021-01-25 13:36:29 +01:00
WerWolv
51d9d37d1a Fixed pattern language being basically completely broken 2021-01-23 14:00:09 +01:00
WerWolv
8ed03051c3 Properly statically link libwinpthread and cleanup plugins cmake files 2021-01-22 22:44:45 +01:00
WerWolv
104000fbc4 Huge refactoring of builtin features into an external plugin 2021-01-22 18:01:42 +01:00
WerWolv
0aacf1d07f Fixed 128 bit byte swapping 2021-01-21 22:55:04 +01:00
WerWolv
b6e2bbc434 Added comments attribute 2021-01-21 20:55:10 +01:00
WerWolv
9a97c6c328 Use big endian rgb8 color for color attribute 2021-01-21 18:01:52 +01:00
WerWolv
e04511269a Fixed one compile issue on macos 2021-01-21 17:49:46 +01:00
WerWolv
ff566aa51f Added attributes syntax to pattern language
This comes with two experimental attributes for variables called `name` and `color`
2021-01-21 17:49:30 +01:00
WerWolv
f4dd79ab43 Fixed link errors in libimhex 2021-01-21 15:12:53 +01:00
WerWolv
9c055ea1fd Allow printing of 128 bit values 2021-01-21 14:53:44 +01:00
WerWolv
046a5866bf Added alignTo builtin function
Resolves #143
2021-01-21 12:10:49 +01:00
WerWolv
22d75ed856 Improved logging and aborting from pattern language builtin functions 2021-01-21 11:36:58 +01:00
WerWolv
a641f27b7e Improved events API 2021-01-21 10:53:12 +01:00
WerWolv
f0ab13ebc3 Added "dollar operator" to get the current offset 2021-01-20 22:56:31 +01:00
WerWolv
31426a289c Added modulus operator 2021-01-20 22:55:57 +01:00
WerWolv
78a87baa94 Added addressof, sizeof and nextAfter builtin functions.
Resolves #144
2021-01-20 22:54:46 +01:00
WerWolv
b2648afc7b Improve bookmark API 2021-01-20 20:16:24 +01:00
WerWolv
be738eb5e7 Improved byte highlighting 2021-01-20 18:10:40 +01:00
WerWolv
740619529c Allow most modal popups to be closed with escape 2021-01-14 17:01:44 +01:00
WerWolv
441f4a9fc7 Removed more static inline variables in headers to avoid duplication 2021-01-13 23:08:41 +01:00
WerWolv
9ade281a92 Use hex::derived_from for compatibility with macos 2021-01-13 17:41:16 +01:00
WerWolv
eb066b3539 Refactored libimhex to and includes to better represent it as library 2021-01-13 17:28:27 +01:00
WerWolv
4328a335ec Added color picker for Bookmarks and highlighting in the hex view 2021-01-13 14:11:23 +01:00
WerWolv
0e32dd667d Made tools registry more in-line with the other APIs 2021-01-13 13:18:03 +01:00
WerWolv
d15307a237 Added data inspector to content registry 2021-01-13 01:24:27 +01:00
WerWolv
ac76e47b94 No more liblib 2021-01-12 23:49:51 +01:00
WerWolv
dc85616549 Hopefully fixed the whole plugin mess I started 2021-01-12 23:28:41 +01:00
WerWolv
84a6fff034 Refactored plugin system 2021-01-12 16:50:15 +01:00
WerWolv
c09a8bca7f Language refactoring, added builtin function registry 2021-01-11 23:54:12 +01:00
WerWolv
90e0aa83d8 Added registry for command palette commands 2021-01-11 23:02:55 +01:00
WerWolv
81652e3650 libimhex needs nlohmann json too 2021-01-11 21:51:52 +01:00
WerWolv
688e921034 Added nlohmann json to imhex directly
Once again Ubuntu is fucking outdated by over a year for literally no reason. Fuck this
2021-01-11 21:42:21 +01:00
WerWolv
e27993aff2 Added custom event registry 2021-01-11 21:11:03 +01:00
WerWolv
d68b931013 Added settings registry and settings menu 2021-01-11 20:31:40 +01:00
WerWolv
14adcc0e51 Added set base address function to hex editor
This resolves #19
2021-01-11 13:50:04 +01:00
WerWolv
3aeb9f31b0 Mark toEngineeringString inline to prevent linker errors 2021-01-11 00:36:24 +01:00
WerWolv
73e259d6e7 Added engineering display mode to calculator 2021-01-11 00:27:00 +01:00
Nobutaka Mantani
d9db8401e2
Fix build on FreeBSD (#126)
* Fix build on FreeBSD

* Use more generic way to search libcrypto

* Integrate macro for FreeBSD
2021-01-10 18:52:00 +01:00
WerWolv
e572c5776d Only define is_integral and is_signed for 128 bit types on non-apple
Clang on macos already defines is_integral and is_signed for 128 bit types
2021-01-07 18:07:56 +01:00
WerWolv
b47736b595 Properly include headers for memcpy 2021-01-07 01:58:56 +01:00
WerWolv
2dbfbe70af Fixed rvalue value evaluation 2021-01-07 01:56:15 +01:00
WerWolv
b902cc6531 Go back to static linking on WIndows
Everything except python is once again statically linked
2021-01-06 19:19:01 +01:00
WerWolv
eed7ef1ac3 Make sure important data is synchronized between ImHex and plugins 2021-01-04 00:19:56 +01:00
WerWolv
94a7d3116a Fix mac build with missing concepts header 2021-01-03 16:20:28 +01:00
WerWolv
4189700a3b Use hex::integral instead of std::integral concept 2021-01-02 22:24:52 +01:00
WerWolv
9a968674d6 Fixed compile on macos 2021-01-02 20:49:55 +01:00
WerWolv
18c9340950 Removed duplicated code from hex.hpp 2021-01-02 20:46:44 +01:00
WerWolv
78ef07cf0f
Pattern Language rewrite (#111)
* Initial parser rewrite effort

Lexer and Token cleanup, Parser started over

* Greatly improved parser syntax

* Reimplemented using declarations and variable placement parsing

* Added back unions and structs

* Added enums as well as mathematical expressions (+, -, *, /, <<, >>, &, |, ^)

* Code style improvement

* Implemented arrays and fixed memory issues

* Fixed more memory issues in parser, reimplemented validator, evaluator and patterns

* Fixed builtin types, arrays and reimplemented strings

* Improved error messages

* Made character a distinct type, used for chars and strings

* Implemented padding, fixed arrays

* Added bitfields

* Added rvalue parsing, no evaluating yet

* Added .idea folder to gitignore

* Fixed build on MacOS

* Added custom implementation of integral concept if not available

* Rebased onto master

* Fixed array variable decl crash

* Added rvalues and dot syntax

* Lower case all pattern language error messages

* Fixed typo in variable name

* Fixed bug where preprocessor would not ignore commented out directives

* Reimplemented pointers

* Fixed rebase issues
2021-01-02 20:27:11 +01:00
WerWolv
144e30775f Fixed duplicated utils.hpp 2020-12-27 15:54:12 +01:00
WerWolv
f74eff8934 Add support for custom providers via plugins 2020-12-27 15:39:06 +01:00
WerWolv
8ba96904a6 More plugin support work 2020-12-27 14:12:53 +01:00
WerWolv
dbbc525174
Added Plugin support (#102)
* Build refactoring and initial plugin support

* Possibly fixed linux / mac build

* Added libdl to libglad build script

* Add glfw to imgui dependencies

* Refactored common functionality into "libimhex" for plugins

* Added plugin loading and example plugin

* Added proper API for creating a custom view and a custom tools entry with plugins
2020-12-22 18:10:01 +01:00