Commit Graph

1621 Commits

Author SHA1 Message Date
redthing1
afd80aa9af make minidump loader fully standalone 2025-06-12 15:13:45 -07:00
redthing1
01d2656189 minidump loader: handle zero protection 2025-06-12 15:08:07 -07:00
redthing1
f8b163f556 refactor to address comments 2025-06-12 15:04:54 -07:00
redthing1
21a0d3c4bc fix tidy 2025-06-10 01:08:45 -07:00
redthing1
ca214a539a minidump: more clang tidy 2025-06-10 00:57:19 -07:00
redthing1
47f4589774 minidump: satisfy clang tidy 2025-06-10 00:47:01 -07:00
redthing1
3fa9fa9c15 minidump: fix uintmax_t format specifier 2025-06-10 00:35:52 -07:00
redthing1
dae4f07f70 module manager: apply clang format 2025-06-10 00:31:17 -07:00
redthing1
aa966826a2 fixup! minidump loader: fix PRIx64 format specifier 2025-06-10 00:28:43 -07:00
redthing1
12646566ca minidump loader: fix PRIx64 format specifier 2025-06-10 00:27:13 -07:00
redthing1
5d9dd122d2 minidump support: dump loading and process reconstruction 2025-06-09 23:12:45 -07:00
momo5502
906cec808a Small fixes 2025-06-07 20:10:36 +02:00
momo5502
f44f3f2bb3 Ignore compile-commands.json symlink 2025-06-07 18:37:14 +02:00
Maurice Heumann
50e4a2e208 Update analysis.cpp 2025-06-07 15:04:45 +02:00
momo5502
f3b20da9cc Optimize thread scheduling and pausing 2025-06-07 14:20:19 +02:00
Maurice Heumann
cb9fadde12 Fix char16_t tolower conversion (#360)
This fixes #51
2025-06-07 12:04:15 +02:00
momo5502
e26ac99551 Fix char16_t tolower conversion 2025-06-07 11:45:43 +02:00
Maurice Heumann
f048be8d9f Update unicorn (#337)
This fixes #331
2025-06-07 10:46:52 +02:00
momo5502
413ef1ea31 Update unicorn 2025-06-07 10:25:58 +02:00
Maurice Heumann
16169416d2 Move much of the analysis logic from the emulation core into the analyzer (#359)
Analysis should not be done in the core. Not everyone using the emulator
needs the analysis.
Much of it was moved to the analyzer. Not all, but the rest will be done
in a follow up PR.
2025-06-07 08:20:44 +02:00
momo5502
05c5f0a085 Final cleanup 2025-06-07 08:01:02 +02:00
momo5502
da4a4f90c9 Cleanup exception callbacks 2025-06-07 07:54:11 +02:00
momo5502
802e295bcc Adapt more printing 2025-06-07 07:29:30 +02:00
momo5502
9372e27453 Fix module logging 2025-06-07 07:11:27 +02:00
momo5502
bc77faec3d Move more logging into callbacks 2025-06-06 20:03:53 +02:00
momo5502
24939583c4 Fix serialization 2025-06-06 16:59:45 +02:00
momo5502
9b8ea27a29 Delay process setup 2025-06-05 20:53:38 +02:00
momo5502
f4282f44d7 Fix compilation 2025-06-05 19:20:45 +02:00
momo5502
3cfb29c5c1 Print buffered stdout 2025-06-05 19:06:39 +02:00
momo5502
f2e0e91630 Isolate more analysis into analyzer 2025-06-05 18:59:27 +02:00
momo5502
f046246740 Extract more analysis logic 2025-06-04 21:21:48 +02:00
momo5502
956e73d839 Some fixes 2025-06-04 20:47:51 +02:00
momo5502
d18a60561c Fix warning 2025-06-04 20:26:33 +02:00
momo5502
1f829463c1 Use more semantic logging 2025-06-04 20:22:28 +02:00
momo5502
de0d9a17a5 Small fixes 2025-06-04 20:19:47 +02:00
momo5502
84e8e86b94 Extract sus activity logging 2025-06-04 19:28:50 +02:00
momo5502
5609de9dde Small fixes and prepare for more semantic logging 2025-06-04 19:17:09 +02:00
momo5502
5230909c23 Switch back to using callbacks 2025-06-04 19:11:16 +02:00
momo5502
25295707ec Event manager progress 2025-06-04 18:52:59 +02:00
momo5502
32fcbf3ded Prepare event manager
The event manager forms the basis for semantic logging.
The emulator transmits events and the manager can handle them.
This means to either print information to stdout, do nothing, etc...
2025-06-03 20:30:12 +02:00
Maurice Heumann
dcee2982ce Update file.cpp 2025-06-03 11:18:10 +02:00
Maurice Heumann
368a9dbdd1 Update file_management.hpp 2025-06-03 11:17:50 +02:00
momo5502
63a5f473c7 Small landing page changes 2025-06-02 20:24:11 +02:00
Maurice Heumann
a33d2d0c2f Add KsecDD device and other improvements (#357)
This PR aims to:
- [Improve
NtQueryInformationToken](d7b8b78cef),
by handling more token types and also fixing TokenIntegrityLevel to
return a proper integrity SID.
- [Add new
pseudo-handles](ac804939d9).
- [Add the KsecDD device and support for devices in
NtQueryObject](ca61a7cd3b).
- [Add new
syscalls](4b6e0f088d),
to be more specific, the syscalls added were the following ones:
`NtRemoveIoCompletion`, `NtSetInformationWorkerFactory`,
`NtShutdownWorkerFactory`, `NtGetCurrentProcessorNumber`,
`NtCreateTimer`, `NtSetTimer`, `NtSetTimer2`, `NtCancelTimer`,
`NtAssociateWaitCompletionPacket`, `NtCancelWaitCompletionPacket`,
`NtSetWnfProcessNotificationEvent`, `NtQuerySecurityObject`.

Most of the changes in this PR were made to get BCryptGenRandom working
in the emulator. Even with the KsecDD device implemented,
BCryptGenRandom only works for subsequent calls if NtCreateWorkerFactory
returns STATUS_SUCCESS. Returning STATUS_SUCCESS from
NtCreateWorkerFactory causes most of the newly added syscalls to be
called, and most of them need to return STATUS_SUCCESS as well;
otherwise, the executable just fails to run. Fortunately, from my
testing, nothing seems to break from just returning STATUS_SUCCESS
without a proper implementation.
2025-06-02 19:53:16 +02:00
Igor Pissolati
4fecea3aff Apply review suggested change 2025-06-02 14:34:12 -03:00
Igor Pissolati
9f32620220 Fix failing checks 2025-06-02 14:32:15 -03:00
Igor Pissolati
c67146ee45 Add new syscalls 2025-06-02 14:32:15 -03:00
Igor Pissolati
db1588623b Add KSecDD device and support for devices in NtQueryObject 2025-06-02 14:32:15 -03:00
Igor Pissolati
cc2266d934 Add new pseudo-handles 2025-06-02 14:32:15 -03:00
Igor Pissolati
ad3046466e Improvements to NtQueryInformationToken 2025-06-02 14:32:15 -03:00