Commit Graph

111 Commits

Author SHA1 Message Date
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
momo5502
325e8115af Replace constructor function with actual constructor call 2024-11-23 19:26:40 +01:00
momo5502
ce6718e932 Fix optional creation 2024-11-23 17:02:01 +01:00
momo5502
84a0aed1d9 Small fixes and additions 2024-11-23 16:44:49 +01:00
momo5502
2c421df771 Fix serialization for MMIO 2024-11-18 18:53:09 +01:00
momo5502
1a23e82f91 Integrate MMIO into the memory manager 2024-11-18 17:15:38 +01:00
momo5502
49a8435f6b Prepare MMIO support 2024-11-18 16:58:23 +01:00
momo5502
804f517e68 Fix tests and compilation 2024-11-17 09:43:02 +01:00
momo5502
a87bb85858 Support afd endpoint serialization 2024-11-17 09:23:45 +01:00
momo5502
78e2a5a80b Fix 2024-11-11 20:51:19 +01:00
momo5502
da5b3e84c4 Force 'lazy' static assert evaluation
This fixes #26
2024-11-11 20:49:58 +01:00
momo5502
d1493867fe Support relative and absolute time
This fixes #23
2024-11-10 15:34:21 +01:00
momo5502
71232d51ab Add memory reading/writing helpers 2024-11-09 16:10:19 +01:00
momo5502
371665290a Implement UDP recvfrom support 2024-11-09 10:02:28 +01:00
momo5502
db34ef29fd Support UDP sending 2024-11-07 20:25:20 +01:00
momo5502
3a26b3a894 Perform retrigger after violation 2024-11-03 20:28:47 +01:00