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
WerWolv
2f78a10e4c
Replaced pattern editor with BalazsJako's ImGuiColorTextEdit
2020-11-20 18:24:59 +01:00
WerWolv
0d9175dc15
Fixed built-in types to not work inside structs
2020-11-20 15:52:06 +01:00
WerWolv
302caba403
Added copy hex view as HTML option
2020-11-20 15:15:43 +01:00
WerWolv
81e5c945b4
Added copy hex view as string option
2020-11-20 13:25:55 +01:00
WerWolv
78ea4276ae
Use constexpr for C++ array
2020-11-20 11:58:40 +01:00
WerWolv
e4879f7546
Added copy programming language array to hex editor
2020-11-20 11:57:14 +01:00
WerWolv
34b8f481e1
Improved table rendering
2020-11-20 11:56:37 +01:00
WerWolv
f36014194d
Bring strings view and pattern data view in line with each other
2020-11-20 00:16:50 +01:00
WerWolv
f748b75a19
Added begin, current and end goto offset modes
2020-11-19 23:24:34 +01:00
WerWolv
6a815d5ebb
Allow mouse highlighting of bytes highlighted by pattern
2020-11-19 22:34:56 +01:00
WerWolv
bfb079cb4f
Fixed syntax errors at the end of the file to not be caught
2020-11-19 22:06:38 +01:00
WerWolv
89afbd1aef
Fixed pattern data view not rendering at all
2020-11-19 21:59:27 +01:00
WerWolv
24c8fc6957
Added back pattern data sorting
2020-11-19 21:19:03 +01:00
WerWolv
9b04373809
Use htonl instead of bswap to technically support big endian systems
2020-11-19 11:37:16 +01:00
WerWolv
6fffc589bf
Completely rewrite highlight and pattern evaluator
2020-11-19 11:36:52 +01:00
WerWolv
0889764bcc
Updated credits
2020-11-17 15:38:42 +01:00
WerWolv
e40bb5c498
Use ImGui-Addons by gallickgunner as file picker instead
2020-11-17 15:38:24 +01:00
WerWolv
a255e062be
Fixed 64 bit fseek and ftell on Linux
2020-11-17 14:09:48 +01:00
WerWolv
02c3821ea7
Allow loading of huge files
2020-11-17 13:59:32 +01:00
WerWolv
e61dfa0927
Fixed about and cheat sheet window
2020-11-17 13:59:16 +01:00
WerWolv
6e21f703ab
Added file drag and drop support
2020-11-17 13:58:50 +01:00
WerWolv
d05805595e
Fixed copying when highlightEnd > highlightStart
2020-11-17 02:36:12 +01:00
WerWolv
975c3a9276
Added byte color to pattern data table
2020-11-17 02:33:15 +01:00
WerWolv
a2fb9306c7
Disallow using declarations with invalid or not yet declared types
2020-11-17 02:32:32 +01:00
WerWolv
4c07983834
Added pattern preprocessor and #define and #include support
2020-11-17 02:31:51 +01:00
WerWolv
b28d45df8a
Fix //-style comments not working on last line
2020-11-16 22:54:54 +01:00
WerWolv
c863b2f65b
Added validator to catch more syntax errors in pattern code
2020-11-16 22:54:39 +01:00
WerWolv
8b9b284ae9
Add more hex editor shortcuts
2020-11-16 00:07:42 +01:00
WerWolv
559fd28036
Added hexadecimal search
2020-11-15 23:04:46 +01:00
WerWolv
4452f9754e
Added regex replacer and color picker to tools window
2020-11-15 21:31:04 +01:00
WerWolv
983c1b4a90
Merge pull request #1 from averne/master
...
Simple configuration parsing for size scaling
2020-11-15 16:06:33 +01:00
WerWolv
cd9d0bcf34
Show more information in data information window
2020-11-15 16:06:10 +01:00
averne
ec294228ae
Simple configuration parsing for size scaling
2020-11-15 15:49:21 +01:00
WerWolv
0b8b887978
Make strings view less laggy
2020-11-15 03:51:59 +01:00
WerWolv
9320ffdbbd
Add ASCII table to tools
2020-11-15 02:50:56 +01:00
WerWolv
a955f522bd
Added strings finder
2020-11-15 01:42:43 +01:00
WerWolv
2526eda0db
Added tools window
2020-11-15 00:46:38 +01:00
WerWolv
5b2dc51c07
Use tables to display pattern data
2020-11-15 00:46:18 +01:00
WerWolv
c758eb244b
Added a help window
2020-11-14 21:16:03 +01:00
WerWolv
d9f5a974cb
Remove requirement for a comma after the last enum entry
2020-11-14 15:06:27 +01:00
WerWolv
658d4ec478
Revamped pattern data displaying to support per-type displaying
2020-11-14 14:42:21 +01:00
WerWolv
72f9da2a67
Display entropy by always creating 2048 blocks for every file
2020-11-14 14:41:15 +01:00
WerWolv
41c70bce44
Add enums
2020-11-14 14:40:21 +01:00
WerWolv
999db12a3a
Added // and /* */ style comments to scripting language
2020-11-13 14:35:52 +01:00
WerWolv
7a30072fcb
Removed useless pattern file size limitation
2020-11-13 13:50:59 +01:00
WerWolv
8aa4402f88
Don't show pattern editor when no file is loaded
2020-11-13 13:06:22 +01:00
WerWolv
295b32b890
Fixed handle leak when loading pattern file
...
Thanks @HookedBehemoth
2020-11-13 12:07:30 +01:00
WerWolv
0dcf02f891
Actually display signed and floating point data in the right format
2020-11-13 12:07:05 +01:00
WerWolv
15b91c1cac
Show complete variable name in pattern data view
2020-11-13 11:37:43 +01:00
WerWolv
0bdc442bf0
Fixed pattern array highlighting offsets being wrong
2020-11-13 11:15:34 +01:00
WerWolv
d44ffde2a9
Fixed color flickering after loading pattern
2020-11-13 11:15:07 +01:00
WerWolv
761522a540
Fixed highlighting calculating sizes wrongly
2020-11-13 00:42:29 +01:00
WerWolv
00cf8ecb18
Set minimum window size to 720x480
2020-11-12 23:58:31 +01:00
WerWolv
06fe80dbd5
Removed Dockspace title bar again
2020-11-12 23:58:16 +01:00
WerWolv
83bb358427
Added arrays
2020-11-12 23:57:43 +01:00
WerWolv
f0fe3a85d2
Fix window resizing
2020-11-12 23:08:31 +01:00
WerWolv
86fdd531da
Fix crash if no magic folder is present
2020-11-12 23:08:17 +01:00
WerWolv
1d15e3be18
Get ready for linux build
2020-11-12 22:22:33 +01:00
WerWolv
a166bf4ed8
Improved libmagic usage. Now supports additional databases
2020-11-12 21:21:11 +01:00
WerWolv
d88bb877b6
Use imfilebrowser instead of Window's file browser
2020-11-12 21:20:51 +01:00
WerWolv
6512d22981
Remove extra new line if file has low entropy
2020-11-12 12:01:13 +01:00
WerWolv
5ba3badcbf
Add more hash algorthms, switch to openssl / libcrypto
2020-11-12 12:00:50 +01:00
WerWolv
3a6d19eca4
Added event system and make use of it for data invalidation
2020-11-12 09:38:52 +01:00
WerWolv
e3df658b4a
Added text searching in hex editor
2020-11-11 14:42:01 +01:00
WerWolv
29a6789521
Added shortcut handling
2020-11-11 14:41:44 +01:00
WerWolv
c6ef30e764
Properly right align FPS display
2020-11-11 11:56:37 +01:00
WerWolv
3dfff3c754
Don't try to hash more bytes than the file contains
2020-11-11 11:56:24 +01:00
WerWolv
9e62685fd1
Fix crash when moving around certain views
2020-11-11 10:47:02 +01:00
WerWolv
9b6b43356b
Added entropy view
2020-11-11 10:46:41 +01:00
WerWolv
362125e933
Cleanup view classes
2020-11-11 09:28:44 +01:00
WerWolv
6f59955c92
Added FPS display
2020-11-11 09:22:55 +01:00
WerWolv
434bb3494a
Abstracted FILE handle into a generic data provider class
2020-11-11 09:18:35 +01:00
WerWolv
c87bc6aebe
Implemented hash view with CRC16, CRC32 and MD5 support
...
More to come
2020-11-11 00:13:09 +01:00
WerWolv
72c602ca55
Fixed windows being zero sized initially
2020-11-11 00:12:49 +01:00
WerWolv
5398a9d0d0
Improved data display
2020-11-11 00:12:30 +01:00
WerWolv
35946564a6
Refactor, added a pattern data display
2020-11-10 21:31:04 +01:00
WerWolv
73f83dc01a
Add "global variables" which will get displayed in the hex editor
2020-11-10 16:24:48 +01:00
WerWolv
cbe302a004
Added hex editor and basic pattern parsing/highlighting
2020-11-10 15:26:38 +01:00