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
771bb22962
sys: Improve shortcut api
2021-04-16 19:43:54 +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
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
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
8423f78586
nodes/patterns: Fixed crashes when recursion occurred
2021-03-07 13:20:33 +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
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
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
f1c03f8b1d
sys: Place config files in AppData/Local/imhex folder on Windows
...
Fixes #182
2021-03-02 10:20: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
e6dc731921
build: Fixed libyara building on MacOS
2021-02-26 17:29:57 +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
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
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
9900a51757
patterns: Fixed multiple severe memory leaks
...
#163 - probably not all yet
2021-02-19 10:51:30 +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
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
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
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
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