Commit Graph

562 Commits

Author SHA1 Message Date
momo5502
7d62d1e20e Support size limit 2025-01-17 17:28:16 +01:00
momo5502
64179c6580 Introduce helper classes 2025-01-17 17:28:16 +01:00
momo5502
942411686c Progress 2025-01-17 17:28:16 +01:00
momo5502
9e268ea4dc GDB stub progress 2025-01-17 17:28:16 +01:00
momo5502
8adc73de71 Prepare custom gdb-stub implementation 2025-01-17 17:28:16 +01:00
Maurice Heumann
e28317ea8f fixed typo in 'committed_region' struct (#86) 2025-01-17 16:59:49 +01:00
Elias Bachaalany
6879d1b06c fixed typo in 'committed_region' struct 2025-01-17 07:45:01 -08:00
Maurice Heumann
c4d3e480a9 exposed region inspection methods (#85)
allow inspecting regions from the emulator object. this is useful for
writing advanced tools that use the windows_emulator library
2025-01-17 16:34:18 +01:00
Maurice Heumann
e4ccaa1813 added '-r' switch to the analyzer (#84)
command line switch to specify the registry path to use with the
analyzer
2025-01-17 16:32:36 +01: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
Maurice Heumann
faf2fa772f Exclude 'zlib' shared project from emulator lib (#83)
Shared targets are not compatible with the emulator lib.
2025-01-17 16:14:45 +01:00
Elias Bachaalany
1ce56e163b always disable zlib shared target 2025-01-17 06:36:33 -08:00
Elias Bachaalany
493388beb1 minor mods 2025-01-17 06:33:09 -08:00
Maurice Heumann
d8fd9d3e69 Exposing high level callbacks (#79)
The idea here is to start exposing various high level callbacks from
various sub components (syscalls, device io, etc.).

Consumer of `windows_emulator` can then hook into any callback.


Please give your feedback on this initial commit.
2025-01-17 07:15:13 +01:00
Maurice Heumann
9133859b59 expose loaded modules map from the module manager (#82) 2025-01-17 06:39:42 +01:00
Elias Bachaalany
1b712502bd added '-r' switch to the analyzer
command line switch to specify the registry path to use with the analyzer
2025-01-16 14:00:13 -08:00
Elias Bachaalany
bc7b9bc915 exclude 'zlib' shared project from emulator lib
Shared targets are not compatible with emulator lib.
2025-01-16 13:03:24 -08:00
Elias Bachaalany
78a11e2a60 expose loaded modules map from the module manager 2025-01-16 12:31:12 -08:00
Robert Yates
c4b76640c7 removed 'CHUNK' macro from global namespace (#81) 2025-01-16 21:20:59 +01:00
Robert Yates
e5a82b2e57 Exclude the 'tools' project from lib builds (#80) 2025-01-16 21:13:08 +01:00
Elias Bachaalany
bfd272e818 removed 'CHUNK' macro from global namespace 2025-01-16 12:10:33 -08:00
Elias Bachaalany
5251398288 Update CMakeLists.txt 2025-01-16 12:02:31 -08:00
Maurice Heumann
4c7e07ec2f 54 cross platform api set support (#75)
This PR provides configurable APISET data for the PEB

There are multiple ways the APISET data can be provided:

* host -> read the APISET from the host process
* file -> read the APISET from an external file
* w11  -> use an inbuilt dump from windows 11
* w10  -> use an inbuilt dump from windows 10

by default on windows it uses the "host" mode.
by default on linux/mac it uses the "w11" mode.

with the file mode you can use the dump-apiset tool to create a dump.
however the inbuilt w10 works fine on w11 so I don't expect it will be
needed.
2025-01-16 15:49:04 +01:00
robert-yates
7773ea6794 add apiset selection code 2025-01-15 20:55:15 +01:00
robert-yates
fbb63b3534 add optional apiset dump tool 2025-01-15 20:55:15 +01:00
robert-yates
c1d7fa7e8b add compression utils 2025-01-15 20:42:02 +01:00
Elias Bachaalany
d70ff1e8f2 minor mods 2025-01-14 23:09:31 -08:00
Elias Bachaalany
e50eb96470 exposing high level callbacks to win_emu 2025-01-14 22:59:41 -08:00
Maurice Heumann
f9f980fbc5 replaced more printf() with logger calls (#78) 2025-01-15 07:28:04 +01:00
Elias Bachaalany
35dbe09880 replaced more printf() with logger calls 2025-01-14 22:22:01 -08:00
Maurice Heumann
49753d2157 Add Android support (#77) 2025-01-13 19:05:43 +01: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
fa5cc9c049 Add android build 2025-01-13 08:04:33 +01:00
momo5502
6c2a6ff872 Prepare android support 2025-01-13 08:04:32 +01:00
Maurice Heumann
e669674be9 Changes to make the 'emulator' project suitable for submodules (#76)
- Added the MOMO_BUILD_AS_LIBRARY CMake option to allow ease of using of
the emulator project as a library/submodule.
- windows_emulator project also brings in the 'common' dependency
- 'common' dependency now renamed to 'emulator-common'
2025-01-13 08:03:28 +01:00
Elias Bachaalany
a16c1dd654 renamed dependency 'common' to emulator-common
also made it mandatory when using the 'windows-emulator' dep
2025-01-12 12:31:53 -08:00
Elias Bachaalany
051e7a77a7 no need to export anything if MOMO_BUILD_AS_LIBRARY 2025-01-12 11:56:11 -08:00
Elias Bachaalany
c58abdc5fe added MOMO_BUILD_AS_LIBRARY
this allows to build the emulator as a static library.
useful for using the project as a library
2025-01-12 11:43:02 -08:00
Maurice Heumann
aaf2e67526 moved some time/sync funcs/consts out from syscall_utils (#71)
...to utils/timer.hpp
2025-01-12 20:10:57 +01:00
Elias Bachaalany
0459a1d71a fix CI issues 2025-01-12 10:59:23 -08:00
momo5502
15b00eb1a8 Fix network address 2025-01-12 10:05:10 +01:00
momo5502
0d637d04fc Reuse address 2025-01-12 09:53:18 +01:00
Maurice Heumann
d45d8150fc Add TCP socket support (#74) 2025-01-12 08:53:16 +01:00
momo5502
dd226bd45a Fix compilation 2025-01-12 08:43:34 +01:00
momo5502
8333c25f2c Finish tcp client socket 2025-01-12 08:23:47 +01:00
Elias Bachaalany
f1f42b855b refactored into its own files ('time.hpp/.cpp') 2025-01-11 21:51:05 -08:00
Elias Bachaalany
57449b6f30 fixed formatting? 2025-01-11 21:35:10 -08:00
Elias Bachaalany
c98260aa04 fixed styles? 2025-01-11 21:35:10 -08:00
Elias Bachaalany
4129725c97 moved some time/sync funcs/consts out from syscall_utils 2025-01-11 21:35:10 -08:00
momo5502
21e2f6f999 Prepare TCP support 2025-01-11 21:29:55 +01:00