WerWolv
8524e93445
impr: Display encoding types in header of hex editor
...
Closes #1186
2023-07-11 00:04:26 +02:00
WerWolv
ce9ce42c1c
impr: Only reload localization when necessary
2023-07-09 20:24:56 +02:00
WerWolv
6343cb092b
build: Fixed include issues
2023-07-09 12:53:31 +02:00
WerWolv
2449b08f64
fix: Crash when trying to remove chunks larger than the whole file
2023-07-06 21:14:50 +02:00
WerWolv
c9c6f3aadb
fix: New visualizers behaving weirdly with large font sizes
2023-07-06 10:08:47 +02:00
WerWolv
924c816dbd
fix: Chunk size setting in information view being reset the first time
2023-07-06 00:00:56 +02:00
WerWolv
695e11477e
feat: Added single stepping feature to pattern debugger
2023-07-05 21:32:11 +02:00
iTrooz
e3ae169833
impr: Separate the behaviour of being savable and being dumpable for provider ( #1183 )
...
### Problem description
Currently, the providers use the method `isSavable()` to determine both
if they can use "Save" or "Save as".
This behaviour is problematic because some providers may need to be
saveable but not saveable as: for example the view provider. The
original provider may not allow to be saved.
### Implementation description
I separate these two behaviour by creating another function:
`isDumpable()`, that return true by default but can be overridden by the
provider to return false, if the provider should not be dumped in any
way.
### Additional things
While I was at it, I also marked "export" operations as needing the
"dumpable" flag. That way, we can't accidentally export the whole
address space of a process as base64.
I also added documentation for these some functions in Provider
2023-07-05 20:49:57 +02:00
WerWolv
b6881d2362
feat: Added timestamp visualizer
2023-07-05 19:54:18 +02:00
WerWolv
8e0349e2ac
fix: Projects failing to be loaded when another project is being unloaded
2023-07-04 23:30:37 +02:00
WerWolv
86c4c8fa96
feat: Added new pattern inline visualizers
2023-07-04 22:18:06 +02:00
WerWolv
33566137c2
impr: Allow bitmap visualizers to be zoomed
2023-07-04 22:17:51 +02:00
WerWolv
f16bbfb469
feat: Added coordinates visualizer
2023-07-04 09:40:05 +02:00
WerWolv
b265d8e54a
build: Restructure romfs assets
2023-07-04 08:42:33 +02:00
WerWolv
6a667d9493
impr: Allow image visualizer image to be scaled
2023-07-03 21:24:36 +02:00
WerWolv
ceed8c7420
pattern: Properly display Start/End/Size column again for zero sized types
2023-07-03 21:24:15 +02:00
WerWolv
d297b2d1cc
impr: Hide sections with an empty name
2023-07-03 12:04:20 +02:00
WerWolv
39e74c627e
impr: Handle unidentifiable data in the data information view better
2023-07-02 10:27:56 +02:00
WerWolv
a0c89858ed
patterns: Don't re-evaluate format functions during highlighting
2023-07-01 14:06:15 +02:00
iTrooz
c6c3ca4d26
fix: Reset terminate handler directly when being called + some other crashes to crash handling ( #1174 )
...
This PR fixes some things about crash handling:
- when the terminate handler is called, immediately set it back to the
original one, so can't make a recursion if the crash-handling code fails
- Only save projects if the crash occured after Imhex finished startup
- do not update the project location when saving the crash backup file:
this will remove problems when `EventAbnormalTermination` is called
before `crashCallback()`
I also added a bit more documentation
2023-07-01 12:32:28 +02:00
WerWolv
301418c728
fix: Bookmarks not being loaded correctly when multiple providers are in project
2023-07-01 12:27:59 +02:00
iTrooz
aec38328d0
impr: Added "Hold SHIFT for more info" text to provider tooltip ( #1171 )
...
As discussed on discord
2023-06-30 22:28:37 +02:00
WerWolv
050a71913a
impr: Improved construction of language settings dropdown
2023-06-30 14:00:10 +02:00
WerWolv
8cc6994dd0
fix: Properly apply UI scaling on launch
2023-06-30 13:40:39 +02:00
WerWolv
bc98556897
impr: Automatically scroll pattern console to the bottom when new lines are added
2023-06-30 00:11:48 +02:00
WerWolv
4f08ba3590
patterns: Fixed race condition when evaluating patterns
2023-06-30 00:11:26 +02:00
WerWolv
d527675bda
build: Make sure changing commit hash doesn't trigger a full rebuild
...
Closes #1137
2023-06-26 14:01:45 +02:00
WerWolv
15cd2b693c
fix: Crash when using paste without a valid selection
2023-06-26 11:14:10 +02:00
WerWolv
cda883bb0f
fix: Page count displaying wrongly in empty files
2023-06-26 11:13:12 +02:00
WerWolv
e03c91b888
impr: Better UI for all data information diagrams
2023-06-26 10:51:37 +02:00
WerWolv
9282f1fe75
fix: Multiwindow support not being disabled by default on Linux
2023-06-26 09:02:23 +02:00
WerWolv
af147b4f54
fix: Titlebar button localization keys still being inside the windows plugin
2023-06-26 08:54:30 +02:00
WerWolv
c280b16787
fix: Make disassembler view not clear selection when typing in region
2023-06-24 20:53:36 +02:00
WerWolv
a449478e39
patterns: Make updating favorites and pattern tooltips not lag out ImHex
2023-06-24 16:40:34 +02:00
WerWolv
c1babc2a55
fix: Prevent data inspector table from being scrollable
2023-06-24 15:39:19 +02:00
WerWolv
b644020e0f
impr: Allow Accept Pattern popup to be closed with Escape
2023-06-24 15:32:05 +02:00
WerWolv
07ffd21c5a
fix: Entropy and byte type graph sometimes stopping in the middle
2023-06-24 15:20:26 +02:00
WerWolv
af951e3526
fix: Entropy and byte type diagram address and display being wrong
2023-06-24 11:53:21 +02:00
WerWolv
ade05f8e12
impr: Only load a limited subset of unicode characters by default
2023-06-24 10:58:42 +02:00
WerWolv
1e9cc97263
feat: Added scope selector dropdown to pattern debugger
2023-06-24 00:49:43 +02:00
WerWolv
a7ecefb5a0
fix: Don't load constants files that start with a _
2023-06-23 21:39:39 +02:00
WerWolv
d65e669bbb
impr: Make loading of large table files significantly faster
2023-06-21 23:58:21 +02:00
iTrooz
b7d8e46288
feat: Display detailed error message when loading of project fails ( #1135 )
...
In order to do this I add to make some other additions :
- Add a warning popup (TODO, maybe add some icons to differentiate
error/warning popups in a future PR ?)
- create showError() and showWarning() functions, as helpers to show a
message both to the logs and as a popup
2023-06-21 20:07:36 +02:00
WerWolv
3fe6cd057b
impr: Upper case pattern data export options
2023-06-21 17:49:03 +02:00
WerWolv
da11c47693
impr: Better sorting of hex cell visualizers
2023-06-21 17:48:51 +02:00
WerWolv
9cd19063da
fix: Occasional crashes when evaluating patterns
2023-06-21 10:30:00 +02:00
WerWolv
0da87cdb68
patterns: Updated pattern language
2023-06-21 09:29:40 +02:00
WerWolv
eed785d73f
impr: Better layout for statistics value in statistics popup
2023-06-21 00:33:06 +02:00
shenleban tongying
b223d9b0ff
fix: Wrong drawing logic for custom encoding characters ( #1150 )
...
fix https://github.com/WerWolv/ImHex/issues/1146
related
3a840c4ced
2023-06-21 00:30:26 +02:00
WerWolv
c8150f3261
impr: Make statistics format not suck a whole lot
2023-06-21 00:21:16 +02:00
Nik
f703b15165
feat: Added statistics and crash log uploading ( #1149 )
...
Co-authored-by: Justus Garbe <gihihoh@gmail.com>
2023-06-20 11:55:56 +02:00
WerWolv
25154dd450
build: Force enable exceptions and rtti
2023-06-18 14:42:48 +02:00
WerWolv
d9af85f458
impr: Split offset column into Start and End column in pattern data view
2023-06-18 12:23:47 +02:00
WerWolv
5f6bc2507c
impr: Make ImHex not use lots of CPU when waiting for conditions
2023-06-18 10:18:58 +02:00
WerWolv
c2e023f567
fix: Pattern editor console scrolling back to the top constantly
2023-06-16 22:17:01 +02:00
WerWolv
90a576c3c7
fix: Highlighting and updating of the new console not working well
2023-06-14 10:35:23 +02:00
WerWolv
0e5371b298
fix: Properly handle multithreading for new pattern console
2023-06-14 06:57:43 +02:00
WerWolv
dd832bfa7e
ui: Make pattern editor console use another text editor
2023-06-13 22:58:57 +02:00
WerWolv
3b514003f8
fix: Pattern editor drag bar not always getting dragged correctly
2023-06-12 08:55:30 +02:00
WerWolv
7de367a944
impr: Properly allow multi-threaded logging without messing up output
2023-06-12 08:24:36 +02:00
WerWolv
ef1d831158
impr: Better UI/UX of the new debugger
2023-06-11 22:00:49 +02:00
WerWolv
da137b3e3b
feat: Allow pattern editor console to be resized
2023-06-11 21:41:24 +02:00
WerWolv
03673b5846
feat: Added basic Pattern Language debugger
2023-06-11 21:41:11 +02:00
WerWolv
34732a1ee7
fix: Corrected some memory leaks
2023-06-11 10:47:17 +02:00
KOLANICH
e8ca139246
fix: Remove unused member variable in HexEditor class ( #1129 )
...
Fixes `error: private field 'm_grayZeroHighlighter' is not used
[-Werror,-Wunused-private-field]`
2023-06-11 00:49:34 +02:00
WerWolv
ef9cb31204
patterns: Updated pattern language
2023-06-11 00:08:34 +02:00
WerWolv
e90e414d5a
impr: Show infinity icon in pattern editor view when pattern limit is disabled
2023-06-10 15:09:20 +02:00
WerWolv
a485a0bc3a
fix: Crash when loading files in some cases
2023-06-08 17:02:28 +02:00
WerWolv
903d1fb555
impr: Analyze file content of newly loaded files only when they are selected
2023-06-08 17:02:16 +02:00
WerWolv
99831a66a7
feat: Added file handlers for .hexlyt and .hexproj files
2023-06-06 21:35:13 +02:00
WerWolv
456895a6a6
fix: Various pattern drawer issues
2023-06-06 11:29:58 +02:00
WerWolv
1e2cf87532
fix: Properly clear pattern editor when all providers are closed
2023-06-06 10:36:02 +02:00
WerWolv
48022bc295
fix: Bad formatting of array chunks in pattern data view
2023-06-06 10:06:54 +02:00
Sergei Rebrov
b4ac46f719
impr: Set currently selected address in selection popup ( #1125 )
...
Set the Begin field to the current selected address
2023-06-06 08:22:10 +02:00
WerWolv
44bbbb03af
fix: Various pattern visualizer issues
...
Closes #1119
2023-06-06 08:20:58 +02:00
WerWolv
b8457439a4
fix: Crash when loading custom encodings
2023-06-05 16:56:50 +02:00
WerWolv
c690f7627f
fix: Bad sentence wrapping in advanced provider information popup
2023-06-05 15:36:47 +02:00
WerWolv
849e4ea370
feat: Make paths in about page clickable
2023-06-05 13:50:55 +02:00
WerWolv
9712329924
feat: Added pattern export option to pattern data view
2023-06-05 11:57:26 +02:00
WerWolv
59aa52e744
patterns: Allow console log to be printed immediately and from format functions
2023-06-05 09:45:25 +02:00
WerWolv
60a95eddd7
fix: Crash due to uninitialized data visualizer in hex editor
2023-06-05 09:45:03 +02:00
WerWolv
7c23b215ba
impr: Allow detached tools to always be rendered
2023-06-05 09:08:41 +02:00
WerWolv
ae48ae659b
impr: Move various settings from settings window to hex editor and pattern data view
2023-06-05 09:07:58 +02:00
WerWolv
e78c21cbfb
impr: Use better icons for favorites and filter text boxes
2023-06-04 22:52:36 +02:00
WerWolv
cc55e5ec74
fix: Added missing pattern data favorites lang entry
2023-06-04 18:41:58 +02:00
WerWolv
1134697b90
fix: Pattern filter RValue parsing
2023-06-04 18:35:44 +02:00
WerWolv
e518b8360c
feat: Allow patterns to be marked as favorite
2023-06-04 18:30:47 +02:00
WerWolv
244e34ab84
feat: Added pattern data filter field
2023-06-04 16:13:46 +02:00
WerWolv
07aabe8efa
impr: Improved types used in provider functions
2023-06-04 10:42:11 +02:00
iTrooz
25476d4e1e
build: Update ImGui and its dependencies ( #1122 )
...
This PR updates imgui and its dependencies from the last time, ~1 year
ago
(deabacbd50
)
Commits will be refactored before merging
Things you might ask :
- why did you remove `ImGui_ImplGlfw_SetBorderlessWindowMode()` ?
-> Where is it used ? The only usage of it I see is commented
(cb9a3b1f55/lib/external/imgui/source/imgui_impl_glfw.cpp (L757)
)
- why did you remove the implot anti aliasing flag ?
-> They.. seem to have removed it altogether ?
https://github.com/epezent/implot/issues/479
2023-06-04 00:09:45 +02:00
WerWolv
de76c37ffb
fix: Multiple file provider resize issues
2023-06-03 23:57:41 +02:00
WerWolv
6d19b33e32
fix: Don't require providers to be writable to save a project
2023-06-03 23:18:43 +02:00
WerWolv
aca949175d
impr: Disable advanced provider information popup if there are none
2023-06-03 15:57:47 +02:00
WerWolv
d2e455c4cb
fix: Intel hex provider not displaying data correctly
2023-06-03 15:53:55 +02:00
WerWolv
09dda0bc5e
feat: Added provider information to advanced provider tab tooltip
2023-06-02 14:44:19 +02:00
WerWolv
62ecfb0e0e
fix: Make sure crash backup doesn't end up in recents list
2023-06-02 11:03:44 +02:00
WerWolv
504c022f01
patterns: Added hex_viewer visualizer
2023-06-02 10:47:23 +02:00
WerWolv
5e0ca4ac50
patterns: Properly display exported variables
2023-05-28 15:44:01 +02:00
WerWolv
8d8a5a70f3
fix: Find view replace and hex editor paste logic being wrong
2023-05-28 14:30:33 +02:00
WerWolv
c8c3f5e753
feat: Added primitive replace feature to find view
2023-05-28 11:50:10 +02:00
iTrooz
ea756e620e
fix: Explicitely convert std::fs::path to std::string ( #1116 )
...
This should fix the current crash when opening a project on Windows
2023-05-28 11:36:08 +02:00
iTrooz
e599d31625
fix: Properly Check if crash.json has valid json, remove it otherwise ( #1117 )
2023-05-28 11:35:51 +02:00
iTrooz
e578127f67
feat: Save opened projects as recent entries ( #1105 )
...
This PR does two things :
- save opened projects as recent entries
- refactor stuff about recent entries in a separate file. The reason is
that I felt like welcome_screen.cpp was really big ( 685 lines before
this, 500 now). What do you think ?
---------
Co-authored-by: Nik <werwolv98@gmail.com>
2023-05-27 16:59:30 +02:00
paxcut
950760691c
fix: 3D Visualizer calculating normals incorrectly ( #1108 )
2023-05-26 09:01:16 +02:00
iTrooz
ee94870e83
fix: Do not loop over 'END' ImHexPath ( #1098 )
...
Really small issue, in Help->About->Imhex directories, there would be an
extra entry at the end because you seemed to loop over the
fs::ImHexPath::END entry
2023-05-25 09:27:10 +02:00
iTrooz
d2638c4f27
feat: Display titlebar buttons when not running borderless ( #1099 )
...
Tested on Linux (non-borderless) and Windows (borderless)
You may want to also test it just to be sure
2023-05-25 09:26:40 +02:00
WerWolv
320973c5ff
fix: Crash when sorting Value column
2023-05-24 21:05:14 +02:00
WerWolv
26eac61ddf
feat: Allow themes to set the background blur color
2023-05-24 21:05:14 +02:00
WerWolv
0e3da22c76
feat: Added support for changing the page size
2023-05-23 11:34:30 +02:00
WerWolv
e32fc639c2
fix: Turning off blur again not working
2023-05-22 13:25:11 +02:00
iTrooz
7ce0613977
impr: Added better crash backup and restore mechanism ( #1094 )
...
- Add a new file 'crash.json' to store metadata about the crash, like
the log file or project opened
- show the log file of the session that caused the crash to the user
- Correctly restore the project path
2023-05-22 13:24:48 +02:00
iTrooz
91635346be
feat: Allow to remove recent providers with right click ( #1085 )
...
![image](https://github.com/WerWolv/ImHex/assets/42669835/648d2c8f-6518-4989-bc92-808898cb0f87 )
2023-05-22 13:22:18 +02:00
WerWolv
f81276f7e3
feat: Added support for transparent and blurry window styles
2023-05-22 12:00:35 +02:00
WerWolv
6b28828174
fix: Prevent horizontal scroll on welcome screen
2023-05-22 10:37:30 +02:00
WerWolv
2191eb14ae
impr: Cleanup hashes view a bit
2023-05-22 09:58:56 +02:00
WerWolv
e7b51a56a5
feat: Added support for automatically loading patterns using binary pattern magic
2023-05-22 00:01:58 +02:00
WerWolv
df75218ecb
fix: Ranges found by find view not being highlighted
2023-05-22 00:00:50 +02:00
WerWolv
f57d4f2f7a
impr: Manually sort file chooser popup list
2023-05-21 18:41:43 +02:00
WerWolv
446e0751a6
fix: Force entropy and type distribution graphs to always span the entire plot
2023-05-21 13:46:14 +02:00
iTrooz
5666a5c5fb
feat: Added context menu with right-clicking on file provider ( #1084 )
...
Co-authored-by: Nik <werwolv98@gmail.com>
2023-05-21 13:21:53 +02:00
WerWolv
1b88b3704d
feat: Allow layouts to be deleted again
2023-05-21 10:43:35 +02:00
WerWolv
6dbaac4283
impr: Make sure hex editor popups have their input focused
2023-05-21 10:35:14 +02:00
WerWolv
c02465b892
fix: Byte type and Entropy graph being shifted
2023-05-21 10:23:33 +02:00
WerWolv
f503a89f98
fix: Typo in IEEE754 tool
2023-05-20 21:49:45 +02:00
WerWolv
87621e9337
impr: Disable some Import...
options when the provider isn't writable
2023-05-20 21:23:15 +02:00
WerWolv
3219ba68de
impr: Better layout of ImHex subtitle on welcome screen
2023-05-20 21:20:32 +02:00
WerWolv
5d608603cb
fix: Selection in diff view being retained
2023-05-20 21:13:40 +02:00
WerWolv
11f55a7561
fix: File handles not being closed correctly
2023-05-20 18:07:15 +02:00
KOLANICH
749823e044
build: Move -s
additional compiler flags into linker flags, and enable it only when gcc/clang are used. ( #1087 )
...
Compiler when compiling doesn't use them in those cases and emit a
warning, which is turned into an error by `-Werror`. Unfortunately,
CPack doesn't expose the logic it uses for stripping binaries.
2023-05-20 13:37:57 +02:00
KOLANICH
608c9e2e7a
fix: WASM disassembler not being available in Capstone < 5 ( #1086 )
...
This fixes build on Debian with Capstone from packages.
2023-05-20 13:37:45 +02:00
WerWolv
3cb8e37182
fix: Broken file open logic
...
Closes #1090
2023-05-20 11:52:24 +02:00
paxcut
3e4c4430d5
feat: Greatly improved the IEEE754 tool ( #1047 )
...
I just realized one feature request existed about this tool and have
added a comment to it referring this pr. Errors and additions are
described in the fork commit already. I'm not sure if I should repeat
them here again. I have tested the changes thoroughly, but it is always
possible some fringe case was not tested and is incorrect. The tests
were done using the many similar online calculators for IEEE 754
floating point formats.
IEEE 745 floating point tool redesign modeled after 'float toy' web app
(http://evanw.github.io/float-toy/ )
Streamlined output using colors and compact layout which can be further
simplified.
Chosen display mode (detailed or simplified) is automatically saved and
set on new sessions.
Edit the binary bits, the integer hexadecimal or the floating point
decimal values and the entire app will update with the change.
Supports the main IEEE745 standard formats (half, single and double
precision) together with custom formats of size <= 64 bits.
Each format choice uses and displays the number of significant decimal
digits defined by the mantissa size.
Added labels to identify the location of each bit box inside the binary
representation.
Satisfies round trip / idempotent (reproducing) conversion property
Added theme colors, radio buttons for display mode and a clear button
that resets the tool.
Removed previously and incorrectly added locale translation to various
labels and languages
Attempted to adhere to code style formatting using existing code as
example.
An effort was made to use preferred variable types and functions from
std namespace when appropriate.
Attempted to document code using comments.
Not implemented / left to complete at an later time
Arbitrary width and precision formats.
Extended precision formats.
Shortest string property.
hexadecimal floating point display and conversions.
2023-05-19 21:18:38 +02:00
WerWolv
4ad66365d0
fix: Crash when saving patches
...
Fixes #1077
2023-05-19 20:01:42 +02:00
WerWolv
39276e123e
patterns: Allow bitfield values to be edited
2023-05-19 19:56:55 +02:00
WerWolv
0f9434740f
fix: Crash when deleting last environment variable in pattern editor
2023-05-19 17:15:37 +02:00
Justus Garbe
5ef58cdf76
feat: Added bit and byte reverse and bit display data processor nodes ( #1082 )
...
#1081
2023-05-18 10:25:59 +02:00
WerWolv
a5b0a8614a
impr: Automatically re-evaluate pattern when changing provider and code sync is on
...
Closes #1078
2023-05-16 14:45:04 +02:00
WerWolv
e28f2dfea1
fix: Only 5 patterns per byte being highlighted
...
Fixes #1076
2023-05-16 14:41:02 +02:00
WerWolv
0dcfeaefb3
fix: Build when git commit hash or branch is not available
2023-05-16 12:02:17 +02:00
WerWolv
3bd4a3ba8b
impr: Better JSON error handling in many places
2023-05-16 11:33:00 +02:00
WerWolv
7e9b23de7d
impr: Improve network interface error handling
2023-05-16 11:20:46 +02:00
WerWolv
a758676b0d
fix: Change network interface port to 31337
2023-05-16 11:01:59 +02:00
WerWolv
636ed0095d
feat: Added new imhex/capabilities
network interface
2023-05-16 11:01:40 +02:00
WerWolv
c006062540
feat: Added basic network interface support
2023-05-15 11:30:24 +02:00
WerWolv
e685d65be8
fix: Scrolling not working correctly on welcome screen
...
Fixes #1071
2023-05-15 08:33:35 +02:00
WerWolv
ab67e274b2
fix: Hex editor editing value not updating correctly
2023-05-15 08:17:16 +02:00
WerWolv
7ec7e562d1
fix: Wrong editing values in hex editor in some circumstances
2023-05-14 22:52:47 +02:00
WerWolv
c50d52d0a6
fix: Crash when reading from modified bytes
2023-05-14 22:46:19 +02:00
WerWolv
2b765617ce
impr: Disallow saving pattern files if they're empty
2023-05-14 22:24:16 +02:00
WerWolv
d96fc6d41b
fix: Compilation on macOS
2023-05-14 21:50:58 +02:00