WerWolv
760b8c7a88
impr: Make long running tasks not freeze ImHex, fix saving non-continuous providers
...
Fixes #1454
2023-12-05 14:32:43 +01:00
WerWolv
08fd09064a
fix: Settings view still using old system and not opening properly
2023-12-04 22:17:43 +01:00
WerWolv
9afbfec64e
impr: Allow bookmark addresses to be changed, better comment editor
2023-12-02 23:11:31 +01:00
WerWolv
ec7e89b5cf
feat: Added simple context menu to pattern editor
2023-12-02 20:37:28 +01:00
WerWolv
866cb5706d
feat: Added highlighting rules
2023-12-02 11:09:32 +01:00
WerWolv
2cf642a2a4
build: Updated libwolv
2023-12-01 14:07:10 +01:00
WerWolv
a50bb39978
impr: Further improve compile times
2023-11-30 14:40:07 +01:00
WerWolv
8ee234e5a6
impr: Optimize api includes
2023-11-30 11:23:12 +01:00
WerWolv
cbf82d7476
impr: Force tables to never collapse to zero height
2023-11-28 10:21:54 +01:00
WerWolv
8e7716ebcc
fix: Zero-sized patches being created
2023-11-27 15:48:56 +01:00
WerWolv
494223fff6
fix: Provider load interface not opening
2023-11-27 15:34:05 +01:00
WerWolv
af77b8dfc4
fix: Numeric search tool not displaying values in correct endianess
2023-11-25 19:40:29 +01:00
WerWolv
64be4e692c
impr: More UI adjustments
2023-11-25 19:11:29 +01:00
WerWolv
8d20277a62
feat: Added setting to enable colored pattern row backgrounds
2023-11-25 13:42:51 +01:00
WerWolv
88032a85cd
impr: Even more about page UI improvements
2023-11-25 13:15:21 +01:00
WerWolv
c821967633
impr: More about page UI improvements
2023-11-25 12:44:20 +01:00
Nik
7e660450ed
feat: Implement better and more complete undo/redo stack ( #1433 )
...
This PR aims to implement a more complete undo/redo stack that, unlike
the old one, also supports undoing insertions, deletions and resize
operations
2023-11-25 12:43:48 +01:00
WerWolv
e5f36ca08d
impr: Greatly improve UI of about page
2023-11-25 00:43:03 +01:00
WerWolv
3c36ef2c69
impr: Disable some more menu items when they're not useful
2023-11-24 20:57:37 +01:00
WerWolv
d34ad33c3c
feat: Added setting for font bold, italic and antialiasing
2023-11-24 11:29:05 +01:00
WerWolv
5a58ed5114
fix: Make sure store and about page are opened correctly
2023-11-23 13:08:45 +01:00
WerWolv
b619744093
fix: Command palette not appearing on Linux
2023-11-23 09:33:47 +01:00
Nik
095da62250
feat: Add Markdown Report export option ( #1441 )
2023-11-22 07:26:31 +00:00
WerWolv
909f4b7fe8
refactor: Rename and update localization system
2023-11-21 14:38:01 +01:00
WerWolv
c89a870fe9
refactor: Streamline entire view system
2023-11-21 13:47:50 +01:00
WerWolv
f9073ee8ee
impr: Prettier data inspector edit button
2023-11-19 16:08:21 +01:00
WerWolv
bd59bcda2c
fix: Hiding data inspector rows graying out row above it
2023-11-19 15:55:05 +01:00
WerWolv
0e9302ff08
fix: Hiding custom data inspector rows hiding all defined in the same file
2023-11-19 15:50:13 +01:00
WerWolv
3b01dcf230
feat: Allow hiding data inspector rows
2023-11-18 17:23:15 +01:00
WerWolv
14f728ab76
refactor: Give API files more consistent names
2023-11-18 14:50:43 +01:00
WerWolv
e7bfa483f8
impr: Make settings tab bar always stick to top of window
2023-11-17 16:05:45 +01:00
WerWolv
cec925bcdc
feat: Add shortcut editor to settings
2023-11-17 14:46:21 +01:00
iTrooz
39252dfe48
refactor: Move custom ImGui functions to ImGuiExt namespace ( #1427 )
...
Co-authored-by: Nik <werwolv98@gmail.com>
2023-11-16 22:24:06 +01:00
WerWolv
1136556a0d
fix: Don't treat unlocked achievements as invisible anymore
2023-11-16 13:24:09 +01:00
WerWolv
1331b0691f
impr: Better highlighting color when hovering over colors in the theme manager
2023-11-16 13:23:47 +01:00
WerWolv
a51f9fd90c
impr: Better UI for the settings view
2023-11-15 22:22:57 +01:00
WerWolv
e32def409a
build: Upgraded ImGui to v1.90
2023-11-15 20:22:56 +01:00
WerWolv
73454905e8
fix: Theme color flashing amount being off
2023-11-14 22:36:48 +01:00
WerWolv
8e58f469b0
impr: Display latest log at the top of the log console table
2023-11-14 22:30:13 +01:00
WerWolv
5ec7826273
feat: Highlight color when hovering over it in the theme manager
2023-11-14 22:27:29 +01:00
WerWolv
43f1cc7bd0
fix: Highlight color of bookmark not changing with bookmark
2023-11-14 16:50:38 +01:00
WerWolv
b78435c881
feat: Turn provider settings into sidebar
2023-11-14 15:55:34 +01:00
WerWolv
46d3402705
impr: Better UI for the command palette
2023-11-14 12:15:37 +01:00
WerWolv
d3ed34d5eb
impr: Display folder names of files in subfolders in file chooser popup
2023-11-14 00:37:07 +01:00
WerWolv
375c74abe5
impr: Add command palette button to the title bar
2023-11-14 00:03:22 +01:00
WerWolv
46b1b0ba17
impr: Use ImGui::SeparatorText to draw headers
2023-11-12 00:57:29 +01:00
WerWolv
9fb60a8ab0
fix: Docking two detached tools to each other causing them to vanish
2023-11-12 00:10:16 +01:00
WerWolv
af77819913
fix: Crash when choosing File -> Select without an active selection
2023-11-11 23:43:32 +01:00
WerWolv
498d8c1d65
impr: General code cleanup
2023-11-10 20:47:08 +01:00
WerWolv
d12f5016e4
fix: PageUp/PageDown being slightly weird
2023-11-09 16:07:14 +01:00
WerWolv
a64aa6941d
fix: Force achievement popup to front
2023-11-08 21:57:19 +01:00
WerWolv
924b4a9436
impr: Replace various fixed-size boxes with dynamic ones
2023-11-07 00:46:44 +01:00
WerWolv
f49b5efac4
fix: UI issues in the data information view
2023-11-07 00:46:17 +01:00
WerWolv
8581ab9eb3
feat: Added simple data access graph to pattern editor
2023-11-06 15:15:35 +01:00
WerWolv
d1f8053fbb
fix: Format string vulnerability
2023-11-05 21:51:49 +01:00
WerWolv
4e4cdcdf61
feat: Added release notes and commits to about page
2023-11-05 19:57:29 +01:00
WerWolv
f14f77b4f0
git: Updated Mary's profile link
2023-11-01 10:43:59 +01:00
WerWolv
c7cee59a77
impr: Added build date and time to about page
2023-10-30 23:24:00 +01:00
WerWolv
c37c53369b
impr: Dock newly opened windows by default
2023-10-30 21:53:44 +01:00
iTrooz
bffc229fa8
feat: handle content store entries managed by the system (in a read-only folder) ( #1389 )
2023-10-24 20:00:49 +02:00
WerWolv
215e1ffdc8
fix: Weird indentation
2023-10-22 23:06:35 +02:00
WerWolv
8cd0561e71
fix: Binary Pattern search being broken with alignments > 1
2023-10-22 20:59:32 +02:00
Nik
7fe9a768d4
impr: Rewrote entire settings API and UI ( #1378 )
2023-10-21 21:07:33 +00:00
WerWolv
5227887dbf
impr: Added more fine-grained colors to themes
2023-10-20 12:30:21 +02:00
WerWolv
d07d36f784
fix: Loading of data processor workspaces not working correctly
2023-10-19 23:53:20 +02:00
WerWolv
929e0e64a5
fix: Achievement hovering popups showing up even when they are covered by another window
2023-10-12 20:24:02 +02:00
WerWolv
48a1e93cfe
fix: Tool windows drawing on top of the welcome screen
...
Fixes #1364
2023-10-12 15:15:05 +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
WerWolv
89bffbd1bc
fix: Crash when exceptions are thrown in data processor nodes
2023-09-27 14:19:08 +02:00
WerWolv
b3ef615158
feat: Allow Edit -> Jump to
to jump to little and big endian addresses
...
Closes #1324
2023-09-26 14:01:28 +02:00
WerWolv
89abc8557f
feat: Added shortcuts for the pattern debugger
2023-09-24 18:26:42 +02:00
WerWolv
181a7c5b3d
feat: Added evaluate pattern shortcut
2023-09-24 18:17:58 +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
Imron jehleh
64a30a45d5
fix: Error popup now showing up immediately after click ( #1272 )
...
From #1265 , Looks like Error Popup doesn't handle properly in some
circumstances.
---------
Co-authored-by: iTrooz <hey@itrooz.fr>
Co-authored-by: WerWolv <werwolv98@gmail.com>
2023-09-16 13:09:24 +02:00
WerWolv
1a2a926b77
fix: "About ... that much" achievement not triggering correctly
2023-09-12 22:24:12 +02:00
WerWolv
da18428f27
fix: Highlighting not being cleared correctly in some cases
2023-09-12 22:23:47 +02:00
WerWolv
7685a22c5f
fix: Crash when pressing delete twice when data processor nodes are selected
2023-09-04 19:58:55 +02:00
WerWolv
4ff25819c2
fix: Pasting not working correctly on non-zero pages
...
Fixes #1291
2023-09-03 16:25:51 +02:00
WerWolv
563ff5a774
fix: Future proof the previous fix
2023-09-03 16:18:29 +02:00
WerWolv
b042b8327a
fix: Crash when re-opening a custom section window while having a selection in it
2023-09-03 16:09:06 +02:00
WerWolv
971c8739ca
fix: Potential crash when preprocessing invalid pattern file when loading a file
2023-09-03 15:49:27 +02:00
WerWolv
b2d1568abb
fix: First overlay being assigned to all end nodes
2023-09-03 13:44:13 +02:00
WerWolv
0bbd21f25a
fix: Build issues with older standard libraries
2023-09-03 11:44:48 +02:00
WerWolv
367c4ec9c8
impr: More view comments and refactoring
2023-09-03 10:27:03 +02:00
WerWolv
5538307838
impr: Make achievement popups stay up for longer
2023-09-03 10:26:40 +02:00
iTrooz
fc1ad592cb
feat: Adapt content store view for new API contents ( #1268 )
2023-09-02 18:36:34 +02:00
iTrooz
c2fe9f0966
fix: verify that file names queried from the store do not allow path traversal ( #1277 )
2023-09-02 17:51:21 +02:00
WerWolv
4288f876e2
impr: Added lots of comments and cleaned up many views
2023-08-29 12:14:12 +02:00
WerWolv
550392c8d6
fix: Texture loading from romfs
2023-08-26 23:43:35 +02:00
WerWolv
ba66005585
impr: Various code cleanup
2023-08-26 12:54:52 +02:00
Justus Garbe
bfc835fc54
fix: add new capstone options and fixed overextending name array
2023-08-26 12:21:44 +02:00
WerWolv
8a2afd1c05
fix: Crashes when having pattern auto evaluation enabled
2023-08-16 22:26:05 +02:00
WerWolv
882849e73c
fix: Highlighting of found elements not being cleared correctly
2023-08-09 20:01:57 +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
05ca498343
feat: Added Fill option to hex editor
2023-08-02 13:09:21 +02:00
WerWolv
89115bcdde
impr: Added better data processor workspace close button
2023-08-02 12:51:58 +02:00
WerWolv
bf8924ae0c
feat: Added support for string in/out variables
2023-08-02 12:51:02 +02:00
WerWolv
b469e68ddb
fix: Pattern console not updating correctly
2023-07-30 21:35:31 +02:00
WerWolv
2e5a51bb05
patterns: Updated pattern language
2023-07-30 00:44:09 +02:00
WerWolv
e829c407e3
fix: Writing behaving weirdly when using a custom base address
2023-07-27 02:05:35 +02:00
WerWolv
d0a5c144e6
patterns: Updated pattern language
2023-07-26 00:23:09 +02:00
WerWolv
4d4f223357
impr: Improve frame rate when lots of bytes are highlighted
2023-07-24 23:24:31 +02:00
WerWolv
a032bfa0f5
feat: Added support for hashing arbitrary strings using the string view
2023-07-24 16:58:52 +02:00
WerWolv
b8d5e1e9c5
feat: Added built-in logging console
2023-07-23 23:37:47 +02:00
WerWolv
a99f8f78d0
fix: Crash when trying to paste invalid data
2023-07-22 18:21:58 +02:00
WerWolv
18dd754b31
impr: Better handling of hex editor selections
2023-07-20 20:58:28 +02:00
WerWolv
52c517d38d
fix: Potential crash when loading incorrect data processor node files
2023-07-16 20:41:06 +02:00
WerWolv
aac9bf3896
fix: Crash when using "Open in new View" button in bookmarks
2023-07-16 20:35:10 +02:00
WerWolv
893b06c78b
feat: Allow hex editor editing mode to be entered when pressing Enter
2023-07-16 18:14:48 +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
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
b265d8e54a
build: Restructure romfs assets
2023-07-04 08:42:33 +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
WerWolv
301418c728
fix: Bookmarks not being loaded correctly when multiple providers are in project
2023-07-01 12:27:59 +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
e03c91b888
impr: Better UI for all data information diagrams
2023-06-26 10:51:37 +02:00
WerWolv
c280b16787
fix: Make disassembler view not clear selection when typing in region
2023-06-24 20:53:36 +02:00
WerWolv
c1babc2a55
fix: Prevent data inspector table from being scrollable
2023-06-24 15:39:19 +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
9cd19063da
fix: Occasional crashes when evaluating patterns
2023-06-21 10:30:00 +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
WerWolv
e90e414d5a
impr: Show infinity icon in pattern editor view when pattern limit is disabled
2023-06-10 15:09:20 +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
1e2cf87532
fix: Properly clear pattern editor when all providers are closed
2023-06-06 10:36:02 +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
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
7c23b215ba
impr: Allow detached tools to always be rendered
2023-06-05 09:08:41 +02:00
WerWolv
e78c21cbfb
impr: Use better icons for favorites and filter text boxes
2023-06-04 22:52:36 +02:00
WerWolv
07aabe8efa
impr: Improved types used in provider functions
2023-06-04 10:42:11 +02:00