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
WerWolv
e28d6e7451
Added string literals and improved character parsing
2021-01-09 21:47:52 +01:00
WerWolv
9f275cc84f
Show evaluator errors in a console window instead of the first line
2021-01-09 21:47:52 +01:00
Philipp Kovalev
575903f921
fix(lang): fixes occurrence index in findSequnce built-in fucntion ( #120 )
2021-01-09 18:48:34 +01:00
WerWolv
17ecdbf8ec
Allow accessing of pointer values in mathematical expressions
2021-01-08 20:12:16 +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
69f4c6e5e9
Allow global variables to be accessed and used in expressions
2021-01-08 17:37:05 +01:00
WerWolv
fd98db1b70
Fixed error line number mismatch when including files or using comments
2021-01-08 17:14:35 +01:00
WerWolv
205f3a327e
Fixed endian specifier not applying
2021-01-08 16:56:39 +01:00
WerWolv
f84b661af7
Fixed pointers to built-in types and endian handling
2021-01-08 15:03:53 +01:00
WerWolv
56330686be
Fixed crash when creating an enum
2021-01-08 11:58:07 +01:00
WerWolv
e48c61cf27
Hopefully fixed macos compile finally
2021-01-07 21:52:03 +01:00
WerWolv
08c802f733
Added unbounded char arrays for null-terminated strings
2021-01-07 21:16:34 +01:00
WerWolv
7e4babaca8
Use custom versions of concepts for macos support
2021-01-07 20:06:28 +01:00
WerWolv
5d1e53f469
Added boolean patterns
2021-01-07 17:34:50 +01:00
WerWolv
bef20f7808
Added function calling as well as a few builtin functions
2021-01-07 15:37:37 +01:00
WerWolv
2dbfbe70af
Fixed rvalue value evaluation
2021-01-07 01:56:15 +01:00
WerWolv
3f1d9ed366
Added ternary condition operator
2021-01-07 01:19:54 +01:00
WerWolv
b30bb21646
Added unary operators +, -, ~ and !
2021-01-07 00:41:06 +01:00
WerWolv
acfd5aa02f
Added if, else and else if to pattern language
2021-01-07 00:02:51 +01:00
WerWolv
2248cd96b1
Fixed opening of files with non-ASCII characters in path
...
Fixes #116
2021-01-06 17:22:12 +01:00
WerWolv
7fd0d87d56
Allow enum entries to be accessed via the scope resolution operator
2021-01-06 16:30:30 +01:00
WerWolv
ceee311efa
Added support for more literal types and scope resolution operator parsing
2021-01-05 14:42:08 +01:00
WerWolv
f137d759c8
Allow zero-sized arrays again
2021-01-04 16:25:03 +01:00
WerWolv
f5250d6bcf
Fixed rvalues not evaluating correctly in nested structs
2021-01-04 16:13:03 +01:00
WerWolv
af42d2ff66
Properly convert rvalue to mathematical expression
2021-01-04 14:10:59 +01:00
WerWolv
f1339f8b4a
Fixed crash on load when no plugin folder was present
2021-01-04 13:52:49 +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
e770fcd197
Fixed includes on unix
2021-01-03 15:09:12 +01:00
WerWolv
5a0f965125
Use file mapping instead of of normal file IO
...
This drastically reduces disk reads and improves performance
2021-01-03 15:00:16 +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
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
WerWolv
b9324f44e6
Added selected addresses to hex editor footer
...
This (and the two previous commits) fixes #99
2020-12-21 15:20:57 +01:00
WerWolv
7c350dde90
Added current commit hash and branch to about page
2020-12-21 12:38:50 +01:00
WerWolv
2c1759ce0a
Unified OS and arch checking defines
2020-12-21 12:38:30 +01:00
WerWolv
4b59d57f89
Added version info to about page
2020-12-21 11:24:27 +01:00
WerWolv
15b3860f83
Fixed data inspector not updating properly in all cases
2020-12-21 11:23:57 +01:00
Mary
310059f274
Support macOS
...
This allows building and running under macOS.
There is still some issues with dpi but the application compiles and run now.
2020-12-18 21:44:13 +01:00
WerWolv
9123b21e18
Added basic command palette (similar to the one in vscode)
2020-12-16 22:43:07 +01:00
averne
56cca88fbd
Proper DPI scaling and basic custom font ( #85 )
...
* add glm to arch deps
After running got `None of the required 'glm' found`. This fixes that
* dist/fedora: Include file magic headers
Due to differences in package names between Deb based systems, Arch
Linux, and RPM based systems the package containing the development
headers for file were missing from the Fedora dependencies script.
This includes the package `file-devel`, which is the package which
resolves the issue.
In Fedora, one can identify the package providing a specific file using
the verb "whatprovides" with the command dnf, e.g.:
[~]$ dnf whatprovides /usr/include/magic.h
Last metadata expiration check: 4 days, 0:23:05 ago on Fri 04 Dec 2020 09:06:53 AM PST.
file-devel-5.39-3.fc33.i686 : Libraries and header files for file development
Repo : fedora
Matched from:
Filename : /usr/include/magic.h
file-devel-5.39-3.fc33.x86_64 : Libraries and header files for file development
Repo : @System
Matched from:
Filename : /usr/include/magic.h
file-devel-5.39-3.fc33.x86_64 : Libraries and header files for file development
Repo : fedora
Matched from:
Filename : /usr/include/magic.h
If one is unsure of the specific path, globbing may be used (but must be
quoted):
dnf whatprovides "*/magic.h"
Resolves #48
* dist: Prevent already installed packages in ArchLinux and MSYS2.
Use --needed option with pacman to prevent it.
* Add script to install dependencies on Debian/Ubuntu.
Tested with Xubuntu 20.04 and Debian testing
(in today's Docker image bitnami/minideb).
Update README.md.
* ci: rework (#31 )
* Support non standard LLVM library names (#86 )
This fix openSUSE and Gentoo issue mentioned in https://github.com/WerWolv/ImHex/issues/37#issuecomment-739503138 .
(tested on openSUSE tumbleweed via Docker)
I also took the liberty of renaming llvm_lib to llvm_demangle_lib to be more specific in the ``CMakeLists.txt``.
* Implement proper DPI handling
* Implement basic custom font support
* Fix building on windows
* Hopefully fix fonts on Windows
* Fix several scaling issues
* Replace font renderer with freetype
* Updated CI and dependency scripts
* Rebuild default font atlas
* Correct platform detection macro for mingw
* Fixed PKGBUILD
Co-authored-by: brockelmore <31553173+brockelmore@users.noreply.github.com>
Co-authored-by: Brian 'Redbeard' Harrington <redbeard@dead-city.org>
Co-authored-by: Biswapriyo Nath <nathbappai@gmail.com>
Co-authored-by: Stéphane Gourichon <stephane.gourichon@fidergo.fr>
Co-authored-by: umarcor <38422348+umarcor@users.noreply.github.com>
Co-authored-by: Mary <me@thog.eu>
Co-authored-by: WerWolv <werwolv98@gmail.com>
2020-12-11 14:24:42 +01:00
WerWolv
e1e73077a1
Improved language parsing and validation. This fixes #58
2020-12-07 23:49:19 +01:00
WerWolv
485761f45c
Fixed ImHex refusing to be closed in some circumstances
2020-12-07 00:42:52 +01:00
WerWolv
b06f5630c7
Fixed additional issues with padding and zero sized arrays
2020-12-06 23:15:51 +01:00
WerWolv
5c96a28fb6
Actually fix crash when creating zero sized arrays
...
If size is zero, the array will be treated as non-existent. This fixes #50
2020-12-06 22:52:15 +01:00
WerWolv
7a9d7b59e8
Added overriding of endianess for individual variables
2020-12-06 21:40:57 +01:00
WerWolv
4720cf9fbe
Added possible support for MacOS. Completely untested.
...
Relevant: #32
2020-12-06 13:48:56 +01:00
WerWolv
68f93c5e3d
Fixed possible crash when loading files, relax pattern detection requirements
...
This fixes #20
2020-12-05 22:30:09 +01:00
WerWolv
7b8330f8f8
Added command line support / dropping files onto executable
...
Closes #36
2020-12-05 22:10:03 +01:00
Mary
45c29888b4
Abstract capstone architectures
...
This allows to support older version of Capstone (example 4.0.1).
Should help with ubuntu building issues.
2020-12-05 17:32:30 +01:00
WerWolv
502d90b117
Merge remote-tracking branch 'origin/master'
2020-12-05 12:54:42 +01:00
Mary
d3dccace37
Detect python version at build time
...
This remove the hardcoded version in CMakeLists.txt and
loader_script_handler.cpp.
Fixing building on Arch Linux and probably other systems.
2020-12-05 12:46:50 +01:00
WerWolv
a30453616b
Turned cheat sheet popups into actual windows
2020-12-05 11:34:49 +01:00
WerWolv
168ba2ff9f
Denote invalid GUIDs in data inspector
...
Addresses #24
2020-12-05 11:00:56 +01:00
WerWolv
2ca9a8fc79
Fixed data inspector displaying zero at the end of data
...
Fixes #25
2020-12-05 10:42:42 +01:00
WerWolv
6456a68805
Fixed crash when array size variable has a value of zero
2020-12-05 10:36:30 +01:00
WerWolv
192e7d5060
Added Python API function to create structs and unions
2020-12-01 18:21:29 +01:00
WerWolv
6aed140ecf
Use custom "argc" and "argv" exposing. Fixes #6
2020-12-01 18:19:49 +01:00
WerWolv
17096055f8
Added create_struct and create_union function to Python API
2020-12-01 16:41:38 +01:00
WerWolv
c6134bc038
Added basic python-based load scripts
2020-12-01 02:21:40 +01:00
WerWolv
16f885f469
Added read/write command to math evaluator
2020-11-30 21:45:48 +01:00
WerWolv
00072d0216
Improved pattern language cheat sheet, added math evaluator cheat sheet
2020-11-30 21:44:40 +01:00
WerWolv
4878f70e58
Added project files
2020-11-30 00:03:12 +01:00
WerWolv
9e8523470d
Added applying of IPS and IPS32 patches
2020-11-29 15:09:36 +01:00
WerWolv
7316be0bc2
Added patches display window
2020-11-29 02:06:41 +01:00
WerWolv
8a4b663890
Prevent shortcuts from applying to closed windows
2020-11-29 01:18:12 +01:00
WerWolv
3276ad9979
Open file dialog to not pop up if hex view wasn't open
2020-11-29 01:17:54 +01:00
WerWolv
0890043bf4
Make Help view no longer appear in View menu
2020-11-28 22:01:50 +01:00
WerWolv
c90ef343c1
Added math evaluator / calculator to tools window
2020-11-28 21:55:52 +01:00
WerWolv
1395c95831
Same treatment for the disassembly window
2020-11-28 16:15:12 +01:00
WerWolv
33b70a550f
Improved look and feel of hash window. Added "Match selection" feature
2020-11-28 15:53:11 +01:00
WerWolv
985e924e9d
Added simple bookmarks / comments feature. No saving yet though
2020-11-28 00:33:26 +01:00
WerWolv
3827919a32
Added error messages and error display to pattern language editor
2020-11-27 21:20:23 +01:00
WerWolv
d55bea7c46
Added character literals to pattern language
2020-11-27 14:18:28 +01:00
WerWolv
2efe326fdb
Added Save, Save As and implemented error message for Base64 importing
2020-11-27 13:45:56 +01:00
WerWolv
d43bd23e1a
Added default error message window
2020-11-27 13:45:27 +01:00
WerWolv
015ec12215
Improved byte write speed by a lot
2020-11-27 13:44:52 +01:00
WerWolv
fde9dc7961
Various small fixes
2020-11-27 09:09:59 +01:00
WerWolv
ed572ececf
Added patching system and IPS/IPS32 patch exporting
2020-11-27 09:09:48 +01:00
WerWolv
acc10930c2
Added MSVC symbol demangling, switched to LLVM libs for demangling
2020-11-24 18:12:08 +01:00
WerWolv
f17d6c2359
Added copy string and copy demangled string to strings window
2020-11-24 02:59:49 +01:00
WerWolv
58deaa6b29
Added importing from base64 encoded file
2020-11-24 02:00:22 +01:00
WerWolv
fcd88b4b3b
Shrink the color picker to a bit more reasonable size
2020-11-24 00:01:44 +01:00
WerWolv
3bd987ff2c
Streamline view creation, save all view states when quitting
2020-11-23 23:57:19 +01:00
WerWolv
45bcdc8c46
Added toggle for ImGui demo window in Debug mode
2020-11-23 22:23:06 +01:00
WerWolv
0d0b2d6962
Indent variable name instead of color in pattern data view
2020-11-23 22:14:11 +01:00
WerWolv
fd6a41d219
Make selecting memory by clicking on a table item update the inspector
2020-11-23 16:26:01 +01:00
WerWolv
b052429a73
Improved ASCII and Wide char display in data inspector
2020-11-23 16:19:58 +01:00
WerWolv
1996f401e0
Fixed last block searched for strings to yield invalid results
2020-11-23 16:19:31 +01:00
WerWolv
3b3f2226f1
Remove collapse button from all windows
2020-11-23 15:51:58 +01:00
WerWolv
5c0f6a1e50
Enabled ImGui's viewports support
2020-11-23 15:51:40 +01:00
WerWolv
b7438f6ab8
Massively improved look and feel of pattern data, string and disassembly tables
2020-11-23 15:22:26 +01:00
WerWolv
84f80b3e06
Select region when clicking on string, disassembly or pattern data item
2020-11-23 13:10:14 +01:00
WerWolv
c281372b8d
Improved table coloring
2020-11-23 13:08:24 +01:00
misson20000
01eeb53af0
Fix out-of-bounds vector write on copy hex string
2020-11-22 18:00:46 -08:00
misson20000
7cf69128ea
Actually fix time_t decoding crash on Linux
2020-11-22 18:00:17 -08:00
WerWolv
2ab2f5e675
Improved block size text
2020-11-23 00:34:53 +01:00
WerWolv
f0eba69c4a
Fixed time_t decoding crash on Linux
2020-11-23 00:20:29 +01:00
WerWolv
cea366e135
Fixed crash when scrolling disassembler options child off screen
2020-11-23 00:12:53 +01:00
WerWolv
d752c7434f
Fixed crash when no patterns folder exists
2020-11-23 00:12:33 +01:00
WerWolv
4402120ffc
Added the capstone disassembler and a disassembler window
2020-11-22 23:07:50 +01:00
WerWolv
b3fffdf530
Fixed automatic pattern loading
2020-11-22 23:06:17 +01:00
WerWolv
8d6d959e17
No need to manually set table colors
2020-11-22 20:41:54 +01:00
WerWolv
43f5cc622e
Allow loading of huge files efficiently
2020-11-22 19:43:35 +01:00
WerWolv
5f025bcbcc
Fixed UTF-8 decoding to not work
2020-11-22 16:22:23 +01:00
WerWolv
8297e22f10
Added global big and little endian support to the pattern parser
2020-11-22 16:22:02 +01:00
WerWolv
989eade5d7
Added big and little endian support to inspector
2020-11-22 15:32:37 +01:00
WerWolv
cd4de2ff96
Fixed data inspector to only show unsigned values
2020-11-22 12:50:49 +01:00
WerWolv
73d66365e9
Updated cheat sheet page
2020-11-22 11:20:01 +01:00
WerWolv
033ef3889a
Fixed enums failing to validate
2020-11-22 02:25:03 +01:00
WerWolv
0ce1b5d40b
Added simple pointer type inside structs
2020-11-21 23:00:09 +01:00
WerWolv
ed4ed6b433
Added array sizes based on other local variables
2020-11-21 20:19:33 +01:00
WerWolv
4cd18b8358
Added auto loading patterns based on MIME types
2020-11-21 14:39:16 +01:00
WerWolv
fb85f272a1
Added pragmas to pattern language
2020-11-21 14:39:01 +01:00
WerWolv
28bb28b79c
Also rename data inspector window
2020-11-21 14:37:09 +01:00
WerWolv
e3b6cfd54f
Fixed compile on Linux
2020-11-21 00:36:38 +01:00
WerWolv
bf6ed3d540
Added proper data inspector view
2020-11-21 00:12:58 +01:00
WerWolv
9c0a270d90
Made the built-in type hover popup more useful
2020-11-20 22:21:59 +01:00
WerWolv
5112c3aa1e
Added unions and padding to cheat sheet
2020-11-20 22:21:37 +01:00
WerWolv
57dcf6cc93
Added padding type to pattern language
2020-11-20 21:59:27 +01:00
WerWolv
48296775ae
Implemented union support into the pattern language
2020-11-20 21:29:28 +01:00
WerWolv
e3cb078306
Implemented bitfield support into the pattern language
2020-11-20 20:26:19 +01:00