Nik
7fe9a768d4
impr: Rewrote entire settings API and UI ( #1378 )
2023-10-21 21:07:33 +00:00
WerWolv
d07d36f784
fix: Loading of data processor workspaces not working correctly
2023-10-19 23:53:20 +02:00
WerWolv
8821f75e6b
impr: Display friendly disk name as the tab title of the disk provider
2023-10-17 10:22:56 +02:00
WerWolv
c49aad6cd3
impr: List all physical drives on windows in the raw disk provider
2023-10-16 23:45:46 +02:00
iTrooz
d15bd4771d
feat: Support for building ImHex for the web ( #1328 )
...
Co-authored-by: WerWolv <werwolv98@gmail.com>
Co-authored-by: AnnsAnn <git@annsann.eu>
2023-10-04 12:00:32 +02:00
Lennard Fonteijn
ad69ac84b1
feat: Added hex::group attribute and various fixes ( #1302 )
...
As discussed (many times) on Discord, does the same as the new favorite
tag, but instead allows you to add multiple groups.
Initially, this would cause some insane issues with draw/reset
(apparantly) fighting eachother in the pattern drawer. After a lot of
trial and error, I decided to rewrite the flow that is responsible for
calling reset. Now evaluating patterns is the one to decide when the
reset happens, not the core "game"-loop.
To make sure that draw and reset can never happen at the same time, the
mutex originally used for the favorites has been repurposed. Due to the
restructuring, the mutex in the favorite-task is no longer needed, as
that will only ever kick-off after reset is called and if there are
actually patterns, which can never line up to be accessed on different
threads at the same time.
Last but not least, I noticed that hard crashes could result in your
config file getting overridden. I added a check to prevent that.
Last I issue I can see is that if you use an excessive amount of
favorites/groups, a crash can still happen, but it only happens when you
close the program (occasionally, but unpredictable). Before, this would
happen if you ran the evaluation a second time. I boiled the cause of
the crash down to these lines of code in evaluator.cpp >
patternDestroyed:
```cpp
if (pattern->isPatternLocal()) {
if (auto it = this->m_patternLocalStorage.find(pattern->getHeapAddress()); it != this->m_patternLocalStorage.end()) {
auto &[key, data] = *it;
data.referenceCount--;
if (data.referenceCount == 0)
this->m_patternLocalStorage.erase(it);
} else if (!this->m_evaluated) {
err::E0001.throwError(fmt::format("Double free of variable named '{}'.", pattern->getVariableName()));
}
}
```
Specifically, trying to access the `*it` is the reason for the crash
(this was also the cause of the crashes before my fixes, but then during
evaluation).
I'm suspecting the root cause is somewhere in the `.clone` methods of
the patterns. I'd say that for now a crash when closing the program is
more acceptable than during evaluation (which can even happen if you use
favorites).
2023-09-16 13:09:59 +02:00
WerWolv
367c4ec9c8
impr: More view comments and refactoring
2023-09-03 10:27:03 +02:00
iTrooz
fc1ad592cb
feat: Adapt content store view for new API contents ( #1268 )
2023-09-02 18:36:34 +02:00
WerWolv
4288f876e2
impr: Added lots of comments and cleaned up many views
2023-08-29 12:14:12 +02:00
iTrooz
175e66a60e
feat: Do not save memory providers as recent entries ( #1259 )
2023-08-25 15:35:15 +02:00
WerWolv
83e42ddfd9
fix: Don't show accept pattern popup if no patterns are available
2023-08-19 19:12:48 +02:00
WerWolv
8a2afd1c05
fix: Crashes when having pattern auto evaluation enabled
2023-08-16 22:26:05 +02:00
WerWolv
65c56a887c
feat: Added option to load files into memory
2023-08-09 20:04:12 +02:00
WerWolv
a6aafa8cd6
feat: Allow memory files to be renamed
2023-08-08 19:04:00 +02:00
WerWolv
ba9227c1e0
feat: Properly save memory provider data
2023-08-06 21:48:08 +02:00
Nik
e77f138514
feat: Added Achievements ( #1230 )
...
This PR adds Achievements to ImHex that serve as both a guide and a fun
way to learn more about ImHex and reverse engineering
2023-08-06 21:33:15 +02:00
WerWolv
f2cfc70eca
fix: Highest / Lowest entropy block address being wrong
2023-08-06 01:51:01 +02:00
WerWolv
4d4f223357
impr: Improve frame rate when lots of bytes are highlighted
2023-07-24 23:24:31 +02:00
WerWolv
b8d5e1e9c5
feat: Added built-in logging console
2023-07-23 23:37:47 +02:00
WerWolv
a83ca3c228
feat: Added --pl and --magic command
2023-07-17 10:43:29 +02:00
WerWolv
e9450b490f
feat: Added --plugin, --calc, --hash, --encode and --decode subcommands
2023-07-16 23:46:41 +02:00
WerWolv
272b4b0cf8
feat: Added "Update All" button to content store
2023-07-11 09:19:52 +02:00
WerWolv
6343cb092b
build: Fixed include issues
2023-07-09 12:53:31 +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
39e74c627e
impr: Handle unidentifiable data in the data information view better
2023-07-02 10:27:56 +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
e03c91b888
impr: Better UI for all data information diagrams
2023-06-26 10:51:37 +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
1e9cc97263
feat: Added scope selector dropdown to pattern debugger
2023-06-24 00:49:43 +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
eed785d73f
impr: Better layout for statistics value in statistics popup
2023-06-21 00:33:06 +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
90a576c3c7
fix: Highlighting and updating of the new console not working well
2023-06-14 10:35:23 +02:00
WerWolv
dd832bfa7e
ui: Make pattern editor console use another text editor
2023-06-13 22:58:57 +02:00
WerWolv
ef1d831158
impr: Better UI/UX of the new debugger
2023-06-11 22:00:49 +02:00
WerWolv
03673b5846
feat: Added basic Pattern Language debugger
2023-06-11 21:41:11 +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
59aa52e744
patterns: Allow console log to be printed immediately and from format functions
2023-06-05 09:45:25 +02:00
WerWolv
7c23b215ba
impr: Allow detached tools to always be rendered
2023-06-05 09:08:41 +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
c8c3f5e753
feat: Added primitive replace feature to find view
2023-05-28 11:50:10 +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
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
c02465b892
fix: Byte type and Entropy graph being shifted
2023-05-21 10:23:33 +02:00
WerWolv
d96fc6d41b
fix: Compilation on macOS
2023-05-14 21:50:58 +02:00
WerWolv
aa1bf0b764
impr: Make about page resizable
2023-05-13 12:26:13 +02:00
WerWolv
ceeaca1a4b
feat: Added layout manager to save and restore custom layouts
2023-05-11 18:44:50 +02:00
WerWolv
50c3cf8272
build: Replace old interval tree in favour of custom libwolv one
2023-05-11 09:27:23 +02:00
WerWolv
5a6e5d2255
build: Switch to better interval tree implementation
2023-05-07 23:27:43 +02:00
WerWolv
8245f3d4c9
build: Updated libwolv
2023-04-19 21:56:34 +02:00
WerWolv
04a5efc7a3
fix: Crash when evaluating patterns to quickly
2023-04-17 17:02:10 +02:00
WerWolv
99a736df27
impr: Replace horrible pattern extra data class with a more modular system
2023-04-17 16:18:48 +02:00
WerWolv
c32515bc44
impr: Clean up some more clang-tidy issues
2023-04-16 22:12:35 +02:00
WerWolv
1690cd2740
fix: Various issues with the new popup system
2023-04-16 21:34:29 +02:00
WerWolv
aa7c5422c0
fix: Make sure provider data is properly cleared when deleting provider
2023-04-11 15:26:18 +02:00
WerWolv
5512585cc5
fix: Make sure docs question request is always properly formatted
2023-04-10 23:05:44 +02:00
WerWolv
349b5da810
fix: Prevent constants view from growing past the size of the screen
...
Fixes #1025
2023-04-10 21:30:27 +02:00
WerWolv
87d0aae608
feat: Added selection range radio button to various views
...
Closes #1024
2023-04-10 14:08:21 +02:00
WerWolv
391c8acfe4
impr: Added path tooltips to accept pattern popup
2023-04-10 01:46:55 +02:00
WerWolv
dc77d81e1b
feat: Added documentation helper AI
2023-04-10 01:42:53 +02:00
WerWolv
f9a08f5c11
feat: Allow custom alignment to be used in binary sequence search
2023-04-09 15:28:31 +02:00
WerWolv
70f3014390
fix: Some more popup rendering issues
2023-04-08 23:34:46 +02:00
WerWolv
d4ad457af1
fix: Crash when closing provider that was used in view provider
2023-04-08 21:07:57 +02:00
WerWolv
78e66f8959
feat: Added non-ranged and aligned search to sequence and value finder
2023-04-08 20:59:33 +02:00
WerWolv
80edaea392
impr: Update all of ImHex to the new popup system
2023-04-08 00:58:53 +02:00
WerWolv
51e615095e
fix: Make sure placing a type through the Edit menu re-evaluates the pattern
2023-04-06 23:01:45 +02:00
WerWolv
24e584c77b
fix: Crash when trying to place pattern language variable through the Edit menu
...
Fixes #1013
2023-04-05 18:29:30 +02:00
Thomas
af18ca011b
fix: Modified bytes visually reverting back after saving ( #1003 )
...
Fix #988
Co-authored-by: Nik <werwolv98@gmail.com>
2023-04-01 11:18:03 +02:00
WerWolv
60efb6973b
fix: Filtering of long strings in find view not working correctly
2023-04-01 11:04:07 +02:00
WerWolv
15be24db62
sys: Updated to use the new HttpRequest helper instead of Net
2023-03-23 11:23:07 +01:00
WerWolv
be16b66ac0
fix: Make sure files don't get truncated when using Save As on itself
...
Fixes #987
2023-03-21 15:42:10 +01:00
WerWolv
d82f0e952f
fix: Custom data inspector rows not being writable correctly
2023-03-21 13:16:22 +01:00
WerWolv
17c4e405a6
impr: Update the command palette for the modern ages
2023-03-20 17:05:26 +01:00
WerWolv
466dacaab4
ui: Improve the look and feel of the information view
2023-03-17 17:07:39 +01:00
WerWolv
1f8645fd43
fix: Occasional crash when multiple threads are reading data from a file provider
2023-03-17 11:43:50 +01:00
WerWolv
880568cc60
impr: Better find view result filter speeds
2023-03-17 11:32:08 +01:00
WerWolv
f10fb56042
impr: Drastically improve file reading performance
2023-03-17 11:31:50 +01:00
WerWolv
4ee53701e6
impr: Allow Regex find strategy specify string type and minimum length
2023-03-17 08:16:13 +01:00
WerWolv
5097a223e3
impr: Added default saveAs implementation for all providers
2023-03-17 08:15:43 +01:00
WerWolv
7cdba75bef
fix: Crash when not making a valid selection in provider load interfaces
2023-03-16 16:48:15 +01:00
WerWolv
5a2b2e0813
feat: Make yara match list sortable
2023-03-16 13:35:09 +01:00
WerWolv
0dafb3d230
sys: Replaced many helper functions with libwolv
2023-03-12 18:27:33 +01:00
Fenrisfulsur
069221757f
feat: Added chunk based entropy analysis to information view ( #933 )
...
Issue: https://github.com/WerWolv/ImHex/issues/522
Implementation of chunk based entropy analysis in diagram.hpp available
from the data information view and in the pattern language.
---------
Co-authored-by: WerWolv <werwolv98@gmail.com>
2023-03-10 16:06:18 +01:00
WerWolv
277c83e6d8
fix: Uninitialized value build issue
2023-02-19 09:18:17 +01:00
WerWolv
64e34e42b8
patterns: Fixed highlighting of custom sections
2023-02-17 14:53:15 +01:00
WerWolv
bf8089dc7e
impr: Don't memory map files, never keep a write handle open for long
...
Closes #592
2023-02-17 10:26:09 +01:00
WerWolv
5ccbfc1ff8
feat: Allow themes and nodes to be downloaded from the content store
2023-02-16 18:55:21 +01:00
WerWolv
ac83bbeb0e
feat: Added a theme manager view to make it easier to make new themes
2023-02-16 18:06:40 +01:00
WerWolv
d9fa4b452c
impr: Clean up diff view
2023-02-16 08:53:05 +01:00
WerWolv
3067ff08ec
feat: Greatly improved diff view
...
Fixes #631
2023-02-15 17:01:36 +01:00
WerWolv
a59c17aa83
nodes: Fixed loading saved nodes multiple times
2023-02-10 11:22:11 +01:00
WerWolv
5cc01ae89d
nodes: Added support for nested, shareable, custom data processor nodes
2023-02-09 23:07:04 +01:00
WerWolv
d09982d99f
fix: Crash when opening selection view
...
Fixes #913
2023-01-30 18:15:42 +01:00
WerWolv
197e86f327
fix: Duplicate highlightings for every yara rule
2023-01-28 14:27:51 +01:00
WerWolv
b1aa58d446
feat: Allow selected yara rules to be saved to Project file
2023-01-28 14:15:15 +01:00
WerWolv
800ffb5e56
feat: Make it easier to apply multiple yara rules at once
2023-01-27 12:17:10 +01:00
WerWolv
27790532f8
fix: Crash when closing provider that had pattern loaded in some cases
2023-01-24 23:27:15 +01:00
WerWolv
cf9df6e36d
feat: Added ability to query provider information from pattern language
2023-01-24 09:07:11 +01:00
WerWolv
ef12798fe2
feat: Allow custom hashes to be saved to projects
2023-01-18 14:30:56 +01:00
WerWolv
5726e52df2
ui: Make content store resizable again
2023-01-05 13:23:08 +01:00
WerWolv
90df4413c3
feat: Added basic windows process memory provider
2023-01-01 02:29:38 +01:00
WerWolv
26898feb62
ui: Improve colors of digram and layered distribution plot
2022-12-29 15:06:23 +01:00
WerWolv
0311feee9b
feat: Further improve information view
2022-12-28 23:06:49 +01:00
WerWolv
4807ca0057
feat: Added Digram and Layered Distribution plots to information view
2022-12-27 22:50:37 +01:00
WerWolv
4b6a75fb60
feat: Added type distribution graph to information view
2022-12-25 15:45:49 +01:00
WerWolv
0d7740773e
sys: Improve speed and UX of entropy graph
2022-12-23 14:34:06 +01:00
WerWolv
ae5d8c9aad
build: Updated libromfs
2022-12-19 08:52:12 +01:00
WerWolv
603ff9256c
build: Actually use correct fcntl.h
2022-12-19 07:16:38 +01:00
WerWolv
a966cab155
build: Use correct fcntl.h include on Linux
2022-12-19 07:15:18 +01:00
WerWolv
a5296bab95
feat: Added pattern value editing
2022-12-16 11:20:39 +01:00
André Blome
4aa314b3ab
feat: Added quick "save project" action ( #826 )
...
* add quick -save project- action
* translation for -save project as- added
* removed machine translations; header file name extension fixed
* moved openProject() for consistency
2022-11-25 10:47:11 +01:00
WerWolv
b1f76aeda6
feat: Added new view provider
2022-11-14 10:02:46 +01:00
WerWolv
4c5d2f6ebb
feat: Finish up work on new pl section system
2022-11-08 21:43:22 +01:00
WerWolv
5bbc2fd94c
feat: Added basic UI for the new pl section system
2022-11-07 00:04:47 +01:00
WerWolv
901b8f0424
sys: Refactored hex editor into its own reusable component
2022-11-06 12:19:12 +01:00
iTrooz_
32ab1c1a06
sys: Load content store content when it's first opened ( #795 )
...
* refresh store on open
* show the user if the request failed
* do not refresh if a refresh is in progress
This makes ImHex crash
* InProgress
* fix formatting
* use a localized message
* set localized message in other langs
2022-10-27 13:12:24 +02:00
WerWolv
ef6cac6e92
patterns: Make more pattern editor things per-provider
2022-10-26 08:54:43 +02:00
WerWolv
139a379a09
feat: Added Paste all option to paste and resize file without checks
...
Closes #791
2022-10-21 12:14:35 +02:00
WerWolv
6a8611d98d
ux: Make New File command create a new file in memory
...
Closes #792
2022-10-21 12:01:28 +02:00
WerWolv
241b93aab5
patterns: Added menu to Edit menu for placing types at current selection
2022-10-21 10:03:37 +02:00
WerWolv
8b39c8f219
feat: Make all tool windows be detachable
2022-10-13 10:47:38 +02:00
WerWolv
e3f88395ec
fix: Hidden attribute not applying to top-level patterns
2022-10-12 14:49:48 +02:00
WerWolv
015266181e
fix: Various issue with the hex editor editing mode
2022-10-12 10:56:03 +02:00
WerWolv
299933c4f7
feat: Allow ASCII cells in Hex editor to be edited
2022-10-11 20:18:45 +02:00
WerWolv
1c52e0018a
fix: Prevent same pl runtime from running simultaneously when loading provider
2022-10-10 23:16:54 +02:00
WerWolv
daca49658e
ui: Fix highlighting of separator column in hex editor
...
Fixes #776
2022-10-10 17:26:05 +02:00
WerWolv
3a9c3f939e
sys: Properly center hex view around selection when jumping
2022-10-09 14:47:38 +02:00
WerWolv
11f63f9b02
ui: Added optional byte cell and char cell padding
...
Closes #771
2022-10-07 11:28:44 +02:00
WerWolv
e0c35e0002
fix: Data processor nodes not remembering their positions correctly
2022-10-06 09:14:46 +02:00
WerWolv
7bb9e7ee82
sys: Replaced awful task system with a much more efficient thread pool
2022-10-04 23:37:48 +02:00
WerWolv
b17cd3696c
fix: Handling of exceptions that are not being caught
2022-10-03 10:36:19 +02:00
WerWolv
accd554600
sys: Reduce compile time on Windows a bit
2022-10-02 20:35:38 +02:00
Nik
9c484e7b57
fix: Various clang / clang-tidy warnings ( #764 )
2022-10-02 17:30:26 +02:00
WerWolv
b365e16cc9
fix: Multiple issues with the calculator
2022-10-02 14:18:56 +02:00
WerWolv
d643f8f8f7
feat: Allow bookmarks to be reordered
...
Closes #750
2022-09-28 21:40:31 +02:00
WerWolv
c769e9cc32
ui: Highlight modified bytes in red
2022-09-28 15:01:43 +02:00
WerWolv
ceaf80a186
sys: Don't keep files open in File Provider
...
Closes #752
2022-09-26 11:49:35 +02:00
WerWolv
4e5d56e2c0
fix: Files opened by the file provider appearing locked for other applications
2022-09-19 23:07:44 +02:00
WerWolv
9893e7a965
ui: Display array patterns in pattern data view in chunks of 512 entries
2022-09-19 14:16:23 +02:00
WerWolv
f8b4d04713
feat: Added numeric value search to find view
2022-09-19 10:34:57 +02:00