Commit Graph

297 Commits

Author SHA1 Message Date
WerWolv 878f45dd80 fix: Various build errors 2023-12-08 16:22:36 +01:00
WerWolv b4813660b5 refactor: Better interface for the event system 2023-12-08 10:29:44 +01:00
Truman Kilen 5c84ef5f72
feat: Added Linux support to the Process Memory Provider (#1331)
<!--
Please provide as much information as possible about what your PR aims
to do.
PRs with no description will most likely be closed until more
information is provided.
If you're planing on changing fundamental behaviour or add big new
features, please open a GitHub Issue first before starting to work on
it.
If it's not something big and you still want to contact us about it,
feel free to do so !
-->

### Problem description
<!-- Describe the bug that you fixed/feature request that you
implemented, or link to an existing issue describing it -->
Implement a Linux backend for the ProcessMemoryProvider plugin.

### Implementation description
<!-- Explain what you did to correct the problem -->
Most of the provider code is the same between Windows and Linux. The
primary differences are:
- enumerate PIDs in `/proc/` to get the process list
- use `/proc/<PID>/cmdline` as the process name
- parse `/proc/<PID>/maps` to get the module list
- reading/writing from memory is done using
`process_vm_readv`/`process_vm_writev`

NOTE: `sudo setcap CAP_SYS_PTRACE=+eip build/imhex` must be run to give
the binary permission to read another process' memory. Running as root
user should also work but I would not recommend it.

### Additional things
The existing translations keys no longer match since I moved the plugin
from `windows` to `builtin`.

I'm not well versed in C++ so I attempted to keep my changes rather
simple. Feedback is very welcome.

---------

Co-authored-by: WerWolv <werwolv98@gmail.com>
2023-12-07 23:33:15 +01:00
WerWolv 3a016da549 impr: Make providers return a 64 bit size on all platforms 2023-12-07 12:06:26 +01:00
WerWolv f5cbcce112 impr: Add close button to toolbar 2023-12-07 11:53:16 +01:00
WerWolv bfb2c6ab5f impr: Automatically remove null provider if another one is opened 2023-12-07 11:20:37 +01:00
WerWolv 5d24f1b691 impr: Fix input field selection in command palette 2023-12-06 16:20:06 +01:00
WerWolv 0b71568d97 impr: Better UI handling when window is very small 2023-12-06 11:05:02 +01:00
WerWolv 2b22a15e8c feat: Added --hexdump subcommand 2023-12-05 16:45:35 +01:00
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
Nik f9a9ed4846
impr: Vastly improved 3D Visualizer (#1456)
Based entirely on @paxcut's amazing PR #1443

---------

Co-authored-by: paxcut <paxcut@outlook.com>
Co-authored-by: paxcut <53811119+paxcut@users.noreply.github.com>
2023-12-05 10:49:51 +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 e6ad54b53b fix: Overlays not being applied properly 2023-12-02 18:42:57 +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 519d965a36 refactor: Move tools to correct namespace, move data processor nodes 2023-12-01 13:53:51 +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 e370fdb0fc build: Add support for unity builds 2023-11-30 10:22:15 +01:00
WerWolv 5e32b693f3 fix: Crash when trying to analyze small files 2023-11-29 11:02:23 +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 0b06b1e1e8 fix: Way too many bytes being used for digram and layered distribution plot 2023-11-23 23:00:31 +01:00
WerWolv 58c3b95c84 impr: Drastically improve performance of diagram processing 2023-11-23 13:09:06 +01:00
WerWolv 5a58ed5114 fix: Make sure store and about page are opened correctly 2023-11-23 13:08:45 +01: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 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 1249eb3261 impr: Optimize includes in often used header files 2023-11-18 14:34:33 +01:00
WerWolv 36a352b096 feat: Draw info banner on welcome screen if one exists 2023-11-17 15:54:38 +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 0bace013a1 fix: Unary operators not working correctly in math evaluator 2023-11-16 21:23:58 +01:00
WerWolv 5ec7826273 feat: Highlight color when hovering over it in the theme manager 2023-11-14 22:27:29 +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
iTrooz e0264a3459
refactor: Split data processor nodes in several files (#1419)
I'm really not sure about how I grouped the nodes, but that's a start.
In need of review

---------

Co-authored-by: Nik <werwolv98@gmail.com>
2023-11-13 23:36:39 +01:00
iTrooz b04cb7648e
refactor: refactor tools_entries.cpp into several smaller files (#1418) 2023-11-12 00:22:01 +00:00
WerWolv 498d8c1d65 impr: General code cleanup 2023-11-10 20:47:08 +01:00
WerWolv ef320b74b0 impr: Handle showing popups when closing unsaved providers better 2023-11-07 15:31:54 +01:00
WerWolv 8581ab9eb3 feat: Added simple data access graph to pattern editor 2023-11-06 15:15:35 +01:00
WerWolv 4e4cdcdf61 feat: Added release notes and commits to about page 2023-11-05 19:57:29 +01:00
WerWolv e63af24626 fix: Documentation AI not working correctly often
Fixes #1375
2023-10-26 17:19:23 +02: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
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