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