1
0
mirror of synced 2024-11-27 17:10:51 +01:00
Commit Graph

723 Commits

Author SHA1 Message Date
WerWolv
a48a1ef272 nodes: Added byte distribution visualizer node 2022-02-06 13:55:19 +01:00
WerWolv
69c48edfdf nodes: Added Image visualizer
Supports JPG, PNG, TGA, BMP, PSD, GIF, HDR and PIC via stb_image
2022-02-06 01:32:15 +01:00
WerWolv
eade95dff7 fix: Pattern source code being deleted when closing a provider 2022-02-05 22:26:00 +01:00
WerWolv
ca57f91bfa nodes: Added Digram visualizer node 2022-02-05 22:19:32 +01:00
WerWolv
618eead341 sys: Drastically improve highlighting performance 2022-02-04 00:29:47 +01:00
WerWolv
ba68f463e5 ui: Added to matched yara rules 2022-02-02 21:08:46 +01:00
WerWolv
4c51efc5e0 pattern: Improved parsing of integer literals, added support for hex floats 2022-02-02 16:03:18 +01:00
WerWolv
876dbe8179 sys: Final cleanup to get rid of everything builtin in the main application 2022-02-02 00:36:09 +01:00
WerWolv
6977061227 ux: Fixed tips popup and properly apply default layout on first start 2022-02-01 23:33:42 +01:00
WerWolv
ce59226909 sys: Reformat all 2022-02-01 22:09:44 +01:00
WerWolv
1991afb87b
sys: Get rid of SharedData struct and cleanup code structure (#411)
* sys: Initial refactoring of the SharedData class

* sys/pattern: More refactoring, make every provider have its own patterns

* sys: Finished up refactoring. No more SharedData!

* sys: Fixed compile on Unix

* tests: Fixed unit tests

* sys: Moved view and lang files

* pattern: Added assignment operator support to for loops

* tests: Fixed compile issue
2022-02-01 18:09:40 +01:00
WerWolv
61fc479c79 pattern: Fixed many code inconsistencies and bugs 2022-01-31 14:37:12 +01:00
WerWolv
02fc175289 pattern: Make math functions not dangerous 2022-01-30 20:48:44 +01:00
WerWolv
6ae38aead8 pattern: Added extra math functions 2022-01-30 20:46:02 +01:00
WerWolv
52fa2b4479 pattern: Moved all built-in functions to the builtin namespace 2022-01-30 17:49:38 +01:00
WerWolv
af57b39d8f pattern: Added #pragma once to prevent multi-includes of files 2022-01-30 17:49:18 +01:00
WerWolv
dd572ba024 sys: Return std::nullopt instead of {} for empty optional values 2022-01-30 12:43:43 +01:00
WerWolv
66a13266e6 fix: Pasting bytes not working at all 2022-01-30 11:58:03 +01:00
WerWolv
3f5b258629 ux: Auto focus goto and find text box. Execute function on enter 2022-01-29 21:49:15 +01:00
WerWolv
6319449cbd sys: Added RISC-V, M68K, M680X, Webassembly, MOS65XX and BPF architecture to disassembler 2022-01-24 23:56:02 +01:00
WerWolv
0e08b0226b sys: Added clang-format file, formatted entire project 2022-01-24 20:53:17 +01:00
WerWolv
a66fec489c ui: Added some hint text for in/out variable tab, improved centered hints 2022-01-24 00:46:19 +01:00
WerWolv
65212f22a6 pattern/ux: Added copying support to console, clip content, removed prefix 2022-01-24 00:45:46 +01:00
WerWolv
49610f59ea ux: Added interface to choose encoding files more easily 2022-01-23 21:52:43 +01:00
WerWolv
9cf7fc4a2e store: Added encoding files to store, fixed crash when folder doesn't exist 2022-01-23 21:52:24 +01:00
WerWolv
053c897056 ui: Added ImHex logo to about page 2022-01-23 20:46:19 +01:00
WerWolv
8397af5c9b api: Make main menus use the same priority API 2022-01-23 20:45:51 +01:00
WerWolv
2aed6ec13f ux: Added option to save and load data processors 2022-01-23 11:54:25 +01:00
WerWolv
714d421334 api: Moved menu item adding to a new registry-type API 2022-01-23 11:54:21 +01:00
WerWolv
6c6fe8ad5c ui: Added license to about page 2022-01-22 23:11:28 +01:00
WerWolv
48aacc0c2e sys: (s8, s16, s32, s64, s128) -> (i8, i16, i32, i64, i128) 2022-01-22 22:37:52 +01:00
WerWolv
9ddd97a6eb provider: Added insert bytes feature 2022-01-20 23:24:26 +01:00
WerWolv
ee8b665472 ui: Added API to add custom layouts, imhex application and api cleanup 2022-01-18 00:10:10 +01:00
WerWolv
a5a1ae6725 fix: Providers not compiling on Unix 2022-01-16 02:29:25 +01:00
WerWolv
a70ece7b9c sys: Bunch of cleanup, use fs::path instead of std::string for paths 2022-01-16 01:51:31 +01:00
WerWolv
ed8ee35a86 ui: Fixed sizing of several popups 2022-01-16 00:48:35 +01:00
WerWolv
8a6b110d0b ux: Improve loading of encoding files, make advanced encoding enabled by default 2022-01-15 23:44:15 +01:00
WerWolv
1f65fbf422 ui: Fixed hex editor selection frame 2022-01-15 20:56:06 +01:00
WerWolv
25e4902a1c ui: Improved displaying of a bunch of values in the inspector 2022-01-15 15:15:25 +01:00
WerWolv
bcbda85a40 fix: Compiling of time functions on Unix 2022-01-15 15:03:15 +01:00
WerWolv
abac42826c fix: Many security and format issues 2022-01-15 14:14:53 +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
1f8c9b9f71 api: Move copy-as data formatting code to builtin-plugin, add api for it 2022-01-13 00:27:31 +01:00
WerWolv
f6e4d56de6 patterns: Fixed [[static]] attribute and majorly reduced memory usage
Fixes #394
2022-01-12 22:02:47 +01:00
WerWolv
d399a6427a sys: Use custom literals for scaled values 2022-01-11 23:48:18 +01:00
WerWolv
2f1a707fd3 ui: Improve layout of hex editor footer 2022-01-11 23:05:02 +01:00
WerWolv
cbfe52c756 patterns/ui: Limit displaying of array entries to 50 with option to double click last entry for more 2022-01-11 22:38:50 +01:00
WerWolv
1fe6dc4c6e fix: Occasional crash when disassembling files 2022-01-10 21:38:52 +01:00
WerWolv
e35ea13f60 sys: Improved view const-correctness 2022-01-10 21:05:37 +01:00
WerWolv
6ada7885b1 fix: Opening files as read-only if user doesn't have permissions 2022-01-09 21:57:43 +01:00
WerWolv
d38d261bbc provider: Fixed applying of IPS patches. Handle applying asynchronously 2022-01-09 21:27:59 +01:00
draftshade
fe04d05c28
sys: Add functionality to clear recent files (#395)
* sys: Add functionality to clear recent files

* sys: Remove clear recent files from welcome window
2022-01-08 23:17:47 +01:00
WerWolv
077bc45b7d fix: Many format string warnings on MacOS and some Linux distros 2021-12-31 01:10:06 +01:00
WerWolv
3ce0f8f4a8 patterns: Added break and continue statements for loops 2021-12-30 14:44:46 +01:00
WerWolv
7c2e060a5f fix: Provider reading from invalid addresses on later pages
This fixes #384
2021-12-23 15:57:22 +01:00
WerWolv
936d1d6072 sys: Moved to a better shortcut handling system 2021-12-23 15:11:38 +01:00
qxxxb
28e51309cc
Fix saving files (#382) 2021-12-22 13:36:26 +01:00
WerWolv
c1bb407b34 ui: Make diff hex view more consistent with the normal hex editor view
Fixes #381. Thanks a lot to @qxxxb
2021-12-22 13:33:22 +01:00
WerWolv
78f6ef464a ui: Improved look and feel of some tool entries 2021-12-20 22:04:10 +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
0efb226c2f patterns: Make std::env return an empty string and throw a warning if env var doesn't exist 2021-12-18 23:38:16 +01:00
WerWolv
ea92e17ca0 patterns: Added basic support for in/out variables 2021-12-18 22:56:36 +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
f325d50ab8 yara: Actually fixed reading data 2021-12-15 22:52:35 +01:00
WerWolv
7d0d8d5649 yara: Fix address offset after the first page of data 2021-12-15 21:13:45 +01:00
WerWolv
e25d98ef63 provider: Fixed opening zero sized files 2021-12-14 20:16:00 +01:00
WerWolv
51474b2eae ui: Added icon to footer when ImHex has elevated permissions 2021-12-13 22:58:23 +01:00
WerWolv
9bf9788689 fix: Error when opening a file 2021-12-12 21:46:48 +01:00
WerWolv
b372d20ab0 fix: Missing includes on Linux and Mac 2021-12-12 13:42:01 +01:00
WerWolv
d1ce8a5f9b ui: Fix size of settings window 2021-12-12 13:35:23 +01:00
WerWolv
41ce0f57ed ui: Improved About page, removed super outdated cheat sheets 2021-12-12 13:35:07 +01:00
WerWolv
1a0b0e2385 provider: Automatically load available disks on windows 2021-12-12 11:56:26 +01:00
WerWolv
443dedd832 ui/lang: Improved localization and interface glitches of GDB provider ui 2021-12-12 11:55:38 +01:00
WerWolv
caf9ee0c58 ux: Added "Open Other" option to open other providers to File menu 2021-12-12 11:53:56 +01:00
WerWolv
b2a9965617 api: Improved Provider registering api, hide implementation functions better 2021-12-12 11:52:58 +01:00
WerWolv
883207bc6b fix: Compile on MacOS 2021-12-12 01:06:24 +01:00
WerWolv
15e38e1012 ux: Added save pattern option to File menu 2021-12-12 00:52:54 +01:00
WerWolv
8a36897fd9 provider: Added raw disk provider 2021-12-12 00:42:12 +01:00
WerWolv
3e736b36b6 api: Refactored providers to allow for loading interfaces and config views 2021-12-12 00:41:44 +01:00
WerWolv
fb99674217 lang: Added missing localization, changed pattern editor lang keys 2021-12-10 18:00:43 +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
2ac6348fbf ui: Welcome screen, GDB Provider and memory editor ui fixes 2021-12-08 22:18:59 +01:00
WerWolv
ea4f4c45cb sys: std::jthread -> std::thread to support libc++ 2021-12-07 23:36:28 +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
1c1396bf4b patterns: Added ability to format patterns as strings.
This adds support for printing char16 strings
2021-11-04 20:41:56 +01:00
WerWolv
c95e12c136 ui: Increased maximum FPS limit to 200FPS, added unlocked FPS setting
Closes #329
2021-10-23 12:59:13 +02:00
Kuruyia
72ec6baf79
sys: Fix macOS compilation (as of 2dc1886) (#317)
* sys: Updated curl to latest version

* sys: Fix macOS compilation

* ui: Fix splash screen OpenGL init for macOS

* sys: Fix std::min compile errors

* git: Re-enabled macos workflow

* sys: Remove includes of the range library

* build: Find OpenGL using CMake

* sys/build: Fix bundled plugins on macOS

* build: Copy plugins to bundle when creating a bundle

* build: Fixup bundled plugins

* sys: Search for plugins in the bundle instead of in Application Support

* sys: Allow resources to be placed in multiple directories on macOS

* build: Output built plugins to the plugins/ directory when not creating a bundle on macOS

* sys: Fix Application Support paths on macOS

* sys: Define ftruncate64 on macOS

* sys: Fix absolute value computation for std::string::at on macOS

Co-authored-by: WerWolv <werwolv98@gmail.com>
2021-10-09 23:07:58 +02:00
WerWolv
2e05845410 ui: Improved command palette 2021-10-07 16:25:59 +02:00
WerWolv
a67263fa27 patterns: Added basic file i/o functions 2021-10-07 14:49:49 +02:00
WerWolv
6d8b7bef09 patterns: Added button to abort evaluation 2021-10-07 11:34:46 +02:00
WerWolv
4b9aff5b29 patterns: Allow str to be used in function bodies 2021-10-04 20:26:34 +02:00
WerWolv
194bc3e5be settings: Add option for auto-loading patterns 2021-09-30 12:00:11 +02:00
WerWolv
e3dd5900e2 patterns: Added parse_int and parse_float functions 2021-09-26 02:23:10 +02:00
WerWolv
9dc62e1469 patterns: Added std::http::get 2021-09-25 16:24:08 +02:00
WerWolv
f5bd0b7971 patterns: Moved std::str to std::string 2021-09-25 00:04:54 +02:00
WerWolv
42d9753bdb patterns: Fixed std::str::substr 2021-09-25 00:04:40 +02:00
WerWolv
e57481b87c tools: Added file shredder, splitter and combiner 2021-09-22 17:56:06 +02:00
WerWolv
85b8698e35 patterns: Add std::mem::read_string 2021-09-21 23:29:30 +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
6ab0ec547c ui: Make footer items jump around less 2021-09-21 03:10:09 +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
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
987840e480 sys: Fixed settings not initializing correctly 2021-09-12 13:59:23 +02:00
WerWolv
635f0606e0 patterns: Fixed enums not counting properly 2021-09-11 23:14:22 +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
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
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
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
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
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
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
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
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
41db0bfafa ui: Fixed welcome screen banner and hyperlink rendering 2021-08-16 23:55:06 +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
7f0bdc95da patterns: Added support for declaring custom functions 2021-06-20 21:22:31 +02:00
WerWolv
21f8fb4090 patterns: Added while statement for array sizing 2021-06-17 23:13:58 +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
44000d2518 sys: Move windows-only footer items to the windows plugin 2021-06-06 19:17:51 +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
32d47456de patterns: Added array index syntax to rvalues and turned addressof/sizeof into operators 2021-04-21 10:17:42 +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
6223b26888 ui: Added hex editor highlight opacity setting 2021-03-29 23:07:18 +02: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
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
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
a91afdb6ae ux: Allow copying value from data inspector 2021-03-02 22:09:38 +01:00
WerWolv
3a7a3a6e9c lang: Add dataSize function to get size of loaded data 2021-03-02 13:55:43 +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
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
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
8603ec1c99 Fixed 64 bit value display in data inspector once again 2021-02-01 01:12:23 +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
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
104000fbc4 Huge refactoring of builtin features into an external plugin 2021-01-22 18:01:42 +01:00