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
7795872be1
ux: Fix jumping to addresses when base address is not 0x00
2021-04-16 13:24:34 +02:00
WerWolv
2e338ebc01
fix: Properly localize Undo and Redo
2021-04-14 09:03:41 +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
8a485575f5
ui: Added recent files to File menu
2021-04-13 08:41:59 +02:00
WerWolv
1e6b493b41
ux: Add slider to entropy plot
2021-04-12 22:20:05 +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
ThisALV
0168a3b741
Fix: ignore non-existent magic directories ( #215 )
2021-04-03 17:08:16 +02:00
WerWolv
2f19ff768d
sys: Improved ScopeGuard syntax a lot
2021-03-31 22:54:43 +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
f263685e44
bug: Fix loading of bookmark name and comment from project file
...
Fixes #211
2021-03-27 22:54:26 +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
42461c467f
ux: Properly use current key layout for shortcuts
2021-03-26 21:40:35 +01:00
WerWolv
2c3a6d38ab
nodes: Properly reset data overlays when errors occurred
2021-03-21 14:52:21 +01:00
WerWolv
ce22028781
imgui: Fix floating windows creating their own task bar items
2021-03-21 14:51:21 +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
2326e090af
sys: Properly delete data provider on exit
2021-03-09 19:32:04 +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
cadd4e5c2b
sys: Lower down FPS to 5 when ImHex loses focus
...
#189
2021-03-06 13:36:20 +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
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
a91afdb6ae
ux: Allow copying value from data inspector
2021-03-02 22:09:38 +01:00
WerWolv
b5912c59cc
sys: Last one
2021-03-02 16:45:39 +01:00
WerWolv
a9635bb78a
sys: Missed one
2021-03-02 14:36:29 +01:00
WerWolv
9481c70ecd
sys: ImU64 is not 64 bit everywhere...
2021-03-02 14:32:18 +01:00
WerWolv
c84ac0bc10
sys: Fix compile on Unix
2021-03-02 14:22:47 +01:00
WerWolv
de327cf3a4
ui: Make use of ImPlot to drastically improve information view
2021-03-02 13:49:45 +01:00
WerWolv
2e4eaf8d33
ux: Fixed region selection only selecting one byte
2021-03-02 13:49:23 +01:00
WerWolv
f0b392575f
ui: Added ImPlot library
2021-03-02 13:48:23 +01:00
Robin Lambertz
293fc17aa6
events: Fix passing path through argv ( #187 )
2021-03-01 20:45:13 +01:00
WerWolv
7838d420d8
ui/ux: Updated dependencies list, make them hyperlinks
2021-03-01 08:59:29 +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
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
@xAndy
372981920e
Don't dlclose nullptrs in plugins ( #179 )
...
* dont dlclose nullptrs in plugins
this fixes a segmentation fault at startup when dlclose is called with a nullptr
* Style fixes
Co-authored-by: WerWolv <werwolv98@gmail.com>
2021-02-26 12:49:33 +01:00
WerWolv
4c9459def3
ui: Various ui improvements
2021-02-25 21:51:12 +01:00
WerWolv
205d88cd23
ui: Added custom theme colors, improved look of description button
2021-02-25 00:17:41 +01:00
WerWolv
02a63639da
ui: Add font awesome icons font
2021-02-24 22:42:26 +01:00
WerWolv
4a1de5d1cb
bookmarks: Added ability to lock bookmarks
2021-02-24 21:42:18 +01:00
WerWolv
209d33ca57
ui: Fixed bookmark name and comment not accepting changes
2021-02-24 21:24:43 +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
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
9b9c040d2d
ui: Run pattern language runtime asynchronously, added compile button
2021-02-20 22:38:31 +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
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
e5d664bc07
Fixed bookmark creation in huge files
2021-02-17 14:57:32 +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
5286a2d9ae
Added some safety checks to thingy file parser
2021-02-14 12:32:48 +01:00
WerWolv
714b62049c
Improved thingy file parsing
2021-02-14 12:05:58 +01:00
WerWolv
1eb6f781b3
Added support for displaying non-ASCII characters in decoder view
...
This requires the user to provide a font that supports these characters as well (for example unifont). The default ImGui font does not have them.
2021-02-14 11:51:05 +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
179e222919
Fixed command palette and added /web command
2021-02-08 19:56:04 +01:00
WerWolv
cfb4b5bd51
I wish I was good at C++ (Properly fix plugin system)
2021-02-07 14:57:13 +01:00
WerWolv
8e7bfb7f1a
Fixed some popups not appearing when no views are open
2021-02-07 14:29:13 +01:00
WerWolv
15bcf71aaf
Removed debug prints
2021-02-07 14:28:53 +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
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
fe7ae9450b
Clear node and link selection in data processor when right clicking
2021-02-04 00:22:14 +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
785ecb8a78
Switch from openssl/libcrypto to mbedtls
2021-02-02 23:11:23 +01:00
WerWolv
29f50bb70b
Fixed search selection and hex editor shortcuts
2021-02-02 00:39:35 +01:00
WerWolv
83bbde8d29
Fixed multiple memory leaks
2021-02-01 20:07:57 +01:00
WerWolv
d69eee55dd
Added recent files selection to Welcome screen
2021-02-01 19:03:45 +01:00
WerWolv
0a3cfe001d
Properly added back console window on Windows debug builds
2021-01-31 22:05:06 +01:00
WerWolv
f259e347aa
Greatly improved Nodes API
2021-01-31 16:11:25 +01:00
WerWolv
b330829f09
Allow detaching of links by dragging
2021-01-31 11:00:35 +01:00
WerWolv
8dd76a6cc8
Added error messages for file opening issues
2021-01-31 00:05:07 +01:00
WerWolv
b4cbfa02cf
Added latest release link to welcome screen
2021-01-31 00:04:33 +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
bc6d33e4fb
Fleshed out welcome screen
2021-01-27 12:04:42 +01:00
WerWolv
004d99fc3a
Get rid of leftovers
2021-01-27 08:50:50 +01:00
WerWolv
47ca69b80e
Added very basic Welcome screen
2021-01-27 01:10:13 +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
9ff92aeb40
Add hacky way to get console output back on windows
2021-01-25 13:36:29 +01:00
WerWolv
b8e383368d
Make pattern popup when loading a file list all available patterns
2021-01-23 14:01:23 +01:00
WerWolv
51d9d37d1a
Fixed pattern language being basically completely broken
2021-01-23 14:00:09 +01:00
WerWolv
8e46751e98
Improved about page
2021-01-23 00:46:50 +01:00
WerWolv
104000fbc4
Huge refactoring of builtin features into an external plugin
2021-01-22 18:01:42 +01:00
WerWolv
7f4cc6e5c0
Updated ImGui to 1.80
...
It works. It just works. Updating anything else usually takes hours and ImGui took literally 2 minutes. ocornut is amazing
2021-01-21 23:09:43 +01:00
WerWolv
3e3a5273c0
Don't allow navigation when the pattern editor is focused
2021-01-21 17:48:24 +01:00
Cam Sinclair
f9fa58a6ea
Enable ImGui keyboard navigation ( #138 )
2021-01-21 15:02: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
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
cd200b978b
Properly set the initial bookmark name
2021-01-13 22:53:33 +01:00
WerWolv
0a8368d639
Close base address popup when clicking Set
2021-01-13 22:53:21 +01:00
WerWolv
eb066b3539
Refactored libimhex to and includes to better represent it as library
2021-01-13 17:28:27 +01:00
WerWolv
c7d179d68e
Use the ID stack the way it was meant to be used
2021-01-13 16:55:42 +01:00
WerWolv
c1ad816211
Added hover tooltip for bookmarks in hex editor
2021-01-13 16:45:31 +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
df50f1934e
Fixed display of most signed integers in the data inspector
2021-01-12 23:39:31 +01:00
WerWolv
dc85616549
Hopefully fixed the whole plugin mess I started
2021-01-12 23:28:41 +01:00
WerWolv
8ae15abb85
Fixed plugin unloading segfault
2021-01-12 16:56:14 +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
46388f4707
Added experimental support for Light and Classic theme
...
MY EYES
2021-01-11 20:32:12 +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
7784fca0d4
Always display Pattern Data table header
2021-01-11 09:53:20 +01:00
WerWolv
68bd5569ce
Don't show Plugin Views menu if there are no views
2021-01-11 09:50:51 +01:00
WerWolv
8b19f0c3c0
Improved UTF-8 display in data inspector
2021-01-11 00:34:50 +01:00
WerWolv
73e259d6e7
Added engineering display mode to calculator
2021-01-11 00:27:00 +01:00
WerWolv
f9039f4b34
Added hex editor view right click context menu
2021-01-10 23:59:36 +01:00
George Hopkins
5fb046ad1f
Show commit on about page only if available ( #132 )
2021-01-10 22:57:57 +01:00
WerWolv
7b089a1f2f
Fixed unions not advancing offset
2021-01-10 22:57:04 +01:00
WerWolv
867faef496
Fixed invalid applying of define replacements
2021-01-10 22:52:58 +01:00
WerWolv
557313ae1e
Fixed boolean OR never being parsed
2021-01-10 22:52:28 +01:00
WerWolv
e4c2049975
Fixed off-by-one error for array bound check
2021-01-10 22:52:12 +01:00
WerWolv
dc6c1fa622
Fixed issues with struct and union members when using conditionals
2021-01-10 19:40:44 +01:00
WerWolv
9fe8a0f491
Fixed enums not counting towards size of structs / enums
2021-01-10 18:24:58 +01:00
WerWolv
43d6b48cab
Fixed rvalue endianess
2021-01-10 17:18:14 +01:00
WerWolv
ad40c53eb2
Fixed enum parse/evaluate error and crash
2021-01-10 17:14:38 +01:00
WerWolv
8f16a733b9
Fixed bitfields behaving like they have no size. Fixes #127
2021-01-10 13:40:07 +01:00
WerWolv
bc4991f915
Improved type consistency throughout the language
2021-01-10 00:40:57 +01:00
WerWolv
7a8e923b41
Added print & warnAssert functions and a colored console
2021-01-09 23:48:42 +01:00
WerWolv
e54dbcf574
Added assert function. Resolves #123
2021-01-09 21:47:52 +01:00
WerWolv
c5d023822d
Added functions with string literals as parameter
2021-01-09 21:47:52 +01:00