Commit Graph

803 Commits

Author SHA1 Message Date
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
momo5502
c8c1e000a3 Separate udp socket implementation from generic socket 2025-01-11 21:28:24 +01:00
Maurice Heumann
32faf2ba1f renamed 'write_status' to 'write_syscall_status' (#70) 2025-01-11 16:43:10 +01:00
Maurice Heumann
1886bb2ac5 log.error() instead of printf() for syscall issues (#72) 2025-01-11 16:42:44 +01:00
Elias Bachaalany
c143acae43 error log instead of printf() for syscall issues 2025-01-11 07:36:29 -08:00
Elias Bachaalany
6ea79021a0 renamed 'write_status' to 'write_syscall_status' 2025-01-11 06:28:10 -08:00
momo5502
b2b2ffd6be Cleanup exception handling and prepare UI support 2025-01-11 09:55:48 +01:00
Maurice Heumann
ff6fd79dd5 More win 10 fixes (#67) 2025-01-11 09:12:36 +01:00
Maurice Heumann
68a88b5582 Small fixes (#68) 2025-01-11 09:12:25 +01:00
momo5502
55e2462206 Small fixes 2025-01-11 09:05:27 +01:00