Commit Graph

101 Commits

Author SHA1 Message Date
Soham Nandy
daeefb4a7f refactor(rdtsc): clean up code overall
Change type of chrono return to be auto

Co-authored-by: Maurice Heumann <MauriceHeumann@gmail.com>

simplify conditional compile and add #else to prevent clang-tidy breaking CI

Co-authored-by: Maurice Heumann <MauriceHeumann@gmail.com>
2025-04-11 06:39:01 +05:30
Soham Nandy
55f29caf0f Revert "refactor: better conditional compilation on time.hpp"
This reverts commit 3bb599d356.
2025-04-11 02:26:28 +05:30
Soham Nandy
3bb599d356 refactor: better conditional compilation on time.hpp 2025-04-11 02:21:22 +05:30
Soham Nandy
0271e39474 refactor(rdtsc): clean up tick logic,
fix intrinsics, and resolve x86 compiler issues

- fix `time.hpp` compiler warnings (errors) and use proper intrinsic for gcc
- simplify tick calculation logic
- fix: exclude intrinsics include for non x86 builds and fix style
- fix: get() on clock_ unique ptr
2025-04-11 01:46:52 +05:30
Soham Nandy
dbc1b4439e feat: spoof rdtsc timings
Previously, RDTSC in the VM always returned a constant value, which broke any non deterministic timing-based operations, or caused detections in heuristics of malware and ANTI-VM tools.

This patch introduces a spoofed rdtsc_fake counter that tracks and adjusts timing deltas to simulate realistic TSC increments. Can be extended to simulate rdtsc timings based on CPU clock speed.
2025-04-10 06:58:01 +05:30
Maurice Heumann
67d34b3988 Small fix 2025-04-08 10:17:05 +02:00
Maurice Heumann
66a529cf43 More logging 2025-04-07 15:36:25 +02:00
Maurice Heumann
7222c0fc1d Add icicle mmio support 2025-04-01 15:40:53 +02:00
momo5502
7c3f848b36 Support dump generation for GDB mode 2025-03-23 13:17:23 +01:00
momo5502
2bc3cda062 Cleanup snapshot generation 2025-03-23 12:42:42 +01:00
momo5502
0dea8260cc Fix SystemLogicalProcessorInformation 2025-03-22 21:07:39 +01:00
momo5502
53fb2f9116 Support more syscalls 2025-03-22 19:53:53 +01:00
Maurice Heumann
1a640ed6d2 Dump emulation state in analyzer (#168) 2025-03-22 14:13:58 +01:00
momo5502
b83b405309 Support std::byte in zlib 2025-03-22 13:08:54 +01:00
momo5502
456369476a Fix zlib decompression 2025-03-22 13:08:37 +01:00
momo5502
04a4da3188 Support std::byte in I/O util 2025-03-22 13:08:11 +01:00
Maurice Heumann
4da6642123 Add socket abstraction 2025-03-20 15:45:38 +01:00
momo5502
ef8a9dae6e Fix warnings 2025-03-18 20:08:54 +01:00
momo5502
2a9a8eda35 Fix clang-tidy warnings 2025-03-18 19:42:30 +01:00
momo5502
046e01832d Fix clang-tidy warnings 2025-03-18 19:09:21 +01:00
Maurice Heumann
2cc2137c3a Unify steady and system clock 2025-03-18 12:10:59 +01:00
Maurice Heumann
450e3c2a9c Use clock interfaces to precisely control time 2025-03-18 11:48:44 +01:00
momo5502
665ff99504 Some GDI fixes 2025-02-14 14:10:35 +01:00
momo5502
39ffa6c87b Fix volume information queries 2025-02-14 09:14:08 +01:00
Elias Bachaalany
c0719651d3 minor changes 2025-02-11 10:25:02 -08:00
Elias Bachaalany
1d7f841ee4 added more callbacks 2025-02-10 11:25:04 -08:00
momo5502
2815a74a18 Setup PEB image base 2025-02-10 16:58:57 +01:00
Maurice Heumann
2686251fde Cleanup windows-emulator and extract classes 2025-02-10 13:42:49 +01:00
momo5502
07a86522cb Support ThreadTebInformation query 2025-02-09 12:54:28 +01:00
momo5502
063d4590a5 Fix nibble parsing 2025-02-09 10:18:35 +01:00
momo5502
27f02c74c7 Support logging actions for interesting modules 2025-02-09 09:43:19 +01:00
momo5502
7f6bfa6cc0 Support fetching tag information 2025-02-08 20:41:03 +01:00
momo5502
edcc090181 Support silencing logging in analyzer 2025-02-08 18:05:47 +01:00
momo5502
b5a0f73113 Fix path syscalls 2025-02-08 14:07:51 +01:00
momo5502
dbf39fce0a Support more features 2025-02-05 19:24:36 +01:00
momo5502
f2c5df5139 Support hardware breakpoints 2025-02-04 19:08:38 +01:00
Maurice Heumann
e87650f3b5 Add more syscalls 2025-02-04 13:04:49 +01:00
momo5502
d836567db1 Fix PE parsing 2025-01-25 07:24:01 +01:00
momo5502
ec1333278b Implement root fs handling 2025-01-25 07:24:01 +01:00
momo5502
24bebc4ee2 Prepare filesystem support 2025-01-25 07:24:01 +01:00
momo5502
32d91bd139 Fix semaphores and mutexes 2025-01-25 07:24:01 +01:00
Elias Bachaalany
194a0de01e minor 2025-01-23 08:48:51 -08:00
Elias Bachaalany
5703a46e30 fix 2025-01-22 06:07:35 -08:00
Elias Bachaalany
638a720ab8 fixing CI errors 2025-01-22 05:55:46 -08:00
Elias Bachaalany
ebf563e313 fix1 2025-01-21 21:43:42 -08:00
Elias Bachaalany
5bf325c77f some refactoring with optional_function
- wrapped std::function into utils::optional_function
-- cleaned the code accordingly in windows_emulator
- using the 'emulator'/'windows_emulator' dependency implies the emulator_common as well.
2025-01-21 19:25:51 -08:00
momo5502
77b4ee5e1e Properly read and write registers 2025-01-19 10:18:45 +01:00
momo5502
9fc37fa3ef Small cleanup and utils 2025-01-18 19:36:12 +01:00
momo5502
cc252447d5 Multiple fixes 2025-01-18 12:43:55 +01:00
momo5502
5079b750cd Finish implementation 2025-01-18 11:43:54 +01:00