1
0
mirror of synced 2024-11-30 18:34:29 +01:00
Commit Graph

285 Commits

Author SHA1 Message Date
WerWolv
2a7b698a3d prv: Make data overlays work everywhere, not just in the hex editor view 2021-03-21 14:50:47 +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
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
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
WerWolv
4c9459def3 ui: Various ui improvements 2021-02-25 21:51:12 +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
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
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
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
179e222919 Fixed command palette and added /web command 2021-02-08 19:56:04 +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
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
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
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
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
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
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
84a6fff034 Refactored plugin system 2021-01-12 16:50:15 +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
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
7a8e923b41 Added print & warnAssert functions and a colored console 2021-01-09 23:48:42 +01:00
WerWolv
9f275cc84f Show evaluator errors in a console window instead of the first line 2021-01-09 21:47:52 +01:00
WerWolv
80e0782fdb Various UI/UX improvements 2021-01-08 19:34:29 +01:00
WerWolv
99f37504de Force reload the current pattern when loading a new file 2021-01-08 17:38:43 +01:00
WerWolv
5d1e53f469 Added boolean patterns 2021-01-07 17:34:50 +01:00
WerWolv
acfd5aa02f Added if, else and else if to pattern language 2021-01-07 00:02:51 +01:00
WerWolv
eed7ef1ac3 Make sure important data is synchronized between ImHex and plugins 2021-01-04 00:19:56 +01:00
WerWolv
c7c654d310 Improved data inspector displaying, added additional number formats 2021-01-03 17:12:20 +01:00
WerWolv
206be8b110 Greatly improved hex editor byte highlighting performance 2021-01-03 02:37:37 +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
f74eff8934 Add support for custom providers via plugins 2020-12-27 15:39:06 +01:00