Commit Graph

126 Commits

Author SHA1 Message Date
momo5502
da4a4f90c9 Cleanup exception callbacks 2025-06-07 07:54:11 +02:00
momo5502
da658e5178 Prepare timer support 2025-06-01 13:56:45 +02:00
momo5502
86dbd11008 Fix serialization of atoms 2025-05-18 12:48:17 +02:00
momo5502
3ba06d15c2 Remove edge generation hook 2025-05-17 17:05:33 +02:00
robert-yates
b2296930d3 prepare 32bit support with name and class inheritance modifications 2025-04-22 12:01:40 +02:00
momo5502
88d94f7065 Fix hook sizes 2025-04-14 18:34:34 +02:00
Maurice Heumann
a6dd9251b8 Prepare 32 bit support 2025-04-14 13:57:54 +02:00
momo5502
9e8f921be1 Add emulator names 2025-04-08 20:29:53 +02:00
momo5502
5fde8c033d Fix hooks
This fixes #180
2025-04-06 20:01:18 +02:00
momo5502
349526a54a Simplify hooking interface 2025-04-05 11:59:49 +02:00
momo5502
a336bdf2af Simplify violation hook API 2025-04-05 10:01:28 +02:00
momo5502
d191f8e667 Optimize MMIO handling 2025-04-05 09:03:41 +02:00
Maurice Heumann
24df7c65c2 Support accurate instruction counts 2025-04-04 13:13:09 +02:00
momo5502
bdf5d60fd9 Implement serialization 2025-04-01 20:54:08 +02:00
momo5502
637ed75b8c GDT fixes 2025-03-29 10:44:41 +01:00
momo5502
af6492be6d Unify setting segment base 2025-03-29 10:44:41 +01:00
momo5502
2bc3cda062 Cleanup snapshot generation 2025-03-23 12:42:42 +01:00
momo5502
8dcfbf0601 Hm 2025-03-22 13:07:51 +01:00
momo5502
0e57c684a8 Optimize deserializer construction 2025-03-20 19:02:23 +01:00
momo5502
ef8a9dae6e Fix warnings 2025-03-18 20:08:54 +01:00
momo5502
6263353438 Isolate memory manager 2025-02-09 18:19:32 +01:00
momo5502
4e38ddc323 Ensure proper allocation granularity 2025-02-09 11:01:46 +01:00
momo5502
454c9a267b Fix afd device serialization 2025-01-26 09:56:55 +01:00
momo5502
45d7c542c3 Prepare emulation bisection 2025-01-26 08:28:10 +01:00
momo5502
130367619b Add debugging utils 2025-01-26 08:28:10 +01:00
momo5502
e34a9e6468 Serialization fixes 2025-01-26 07:05:32 +01:00
momo5502
ec1333278b Implement root fs handling 2025-01-25 07:24:01 +01: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
Maurice Heumann
7a663094d6 [NFC] Cleanup project structure a bit (#93) 2025-01-20 20:25:52 +01:00
Elias Bachaalany
1d5c5c2e74 Introducing reflection levels concept into core components (#91)
The idea is to allow as much internal information into inner components.
to not burden all builds, the reflection level can be controlled via the
MOMO_REFLECTION_LEVEL (where 0 means no reflection code is included).

more reflection variables will be introduced as needed.

For now, the memory manager's layout state version is used to track
whether the memory layout is changed or not (at the lowest level). the
win_emu API consumer can use this reflection to decide to whether to
refresh or not expensive computations
2025-01-20 11:19:33 -08:00
momo5502
2e1fa4554a Extract windows-gdb-stub 2025-01-20 20:09:16 +01:00
Elias Bachaalany
8b3c0755b1 mods based on suggestion/feedback 2025-01-19 13:57:45 -08:00
momo5502
77b4ee5e1e Properly read and write registers 2025-01-19 10:18:45 +01:00
Elias Bachaalany
8053889d20 introducing reflection concept into core components
the idea is to allow as much internal information into inner components.
to not burden all builds, the reflection level can be controlled
via the MOMO_REFLECTION_LEVEL (where 0 means no reflection code is
included).

more reflection variables will be introduced as needed.

for now, the memory manager's layout version is used to track whether
the memory layout is changed or not (at the lowest level).
the API consumer can use this to decide to refresh or not expensive
computations
2025-01-18 21:10:28 -08:00
Elias Bachaalany
6879d1b06c fixed typo in 'committed_region' struct 2025-01-17 07:45:01 -08:00
Elias Bachaalany
0c40214c29 exposed region inspection methods
allow inspecting regions from the emulator object.
this is useful for writing advanced tools that use the windows_emulator
library
2025-01-17 07:27:39 -08:00
momo5502
b76dc7cf24 Introduce path_key util
It represents a canonical path that can be used as key
for unordered containers
2025-01-13 19:00:01 +01:00
momo5502
6c2a6ff872 Prepare android support 2025-01-13 08:04:32 +01:00
momo5502
cad5e674e4 Refactor emulator interface 2025-01-09 19:18:20 +01:00
momo5502
bff8420ffd Format all the code 2025-01-06 17:19:26 +01:00
momo5502
fdb0fafa56 Reformat code + small fixes 2025-01-06 09:36:37 +01:00
momo5502
eeac915a55 Fix macOS warnings 2025-01-05 20:14:53 +01:00
momo5502
605d66c237 Fix ADL for serialize/deserialize 2025-01-05 19:31:51 +01:00
momo5502
6b172f5e78 Add macOS support 2025-01-05 17:43:17 +01:00
momo5502
f75f95cc61 Merge remote-tracking branch 'origin/main' into multi-platform-support
# Conflicts:
#	src/analyzer/main.cpp
#	src/emulator/memory_region.hpp
#	src/windows-emulator/io_device.cpp
#	src/windows-emulator/module/module_mapping.cpp
#	src/windows-emulator/process_context.hpp
#	src/windows-emulator/syscalls.cpp
#	src/windows-emulator/windows_emulator.cpp
2025-01-05 14:44:17 +01:00
momo5502
24f53bc498 Fix more compilation issues 2025-01-05 13:25:28 +01:00
momo5502
010fbb2120 Support concise debugger output 2025-01-03 13:22:51 +01:00
robert-yates
12c80f159e add explicit 16bit unicode 2024-12-24 21:08:39 +01:00
momo5502
ce6cb0116b Support more syscalls 2024-12-21 20:18:59 +01:00
momo5502
d3cf88a0c4 Dynamically update KUSD system time 2024-11-23 22:19:05 +01:00