P0 fingerprint: MSVC2010, DX9, LAA already on
This commit is contained in:
parent
d95ced62de
commit
a80cbbc6de
1 changed files with 35 additions and 0 deletions
35
findings/01-fingerprint.md
Normal file
35
findings/01-fingerprint.md
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
# P0 — binary fingerprint
|
||||
|
||||
Target: `Sword of the Stars.exe` (GOG Complete Collection v1.8.1, build 19833), 7.5 MB,
|
||||
extracted via innoextract to `/srv/re-lab/sots-game/`.
|
||||
|
||||
## PE / toolchain
|
||||
- **PE32, i386 (32-bit)**, subsystem Windows GUI 5.01, 5 sections, ImageBase `0x00400000`,
|
||||
SizeOfImage `0x007b3000`, entry `0x00925794`.
|
||||
- **Compiler: MSVC 2010 (VC++ 10.0)** — MajorLinkerVersion 10; imports `MSVCR100.dll` +
|
||||
`MSVCP100.dll`. Resolves the earlier VS2003/2005/2008 uncertainty. Implications: **RTTI
|
||||
present** (C++ class hierarchy recoverable), MSVC-2010 name mangling (Ghidra demangles),
|
||||
VS2010 Dinkumware STL — expect heavily inlined `std::vector/map/string`.
|
||||
- COFF characteristics `0x12F` → includes `IMAGE_FILE_LARGE_ADDRESS_AWARE (0x20)`:
|
||||
**LAA is already enabled in this build.** The 2 GB→4 GB mitigation is baked in; the memory
|
||||
ceiling only needs allocator work if large-battle crashes still occur. `RELOCS_STRIPPED`
|
||||
set (so the ASLR flag in DllCharacteristics `0x8140` is effectively inert).
|
||||
|
||||
## Imported subsystems (from the import table)
|
||||
- **Graphics: DirectX 9** — `d3d9.dll` + `d3dx9_42.dll` (D3DX June 2010). Anchor for the
|
||||
renderer: `Direct3DCreate9` → `CreateDevice` → present loop.
|
||||
- **Audio:** `DSOUND.dll` (DirectSound). **Video:** `binkw32.dll` (RAD Bink).
|
||||
- **Net:** `WSOCK32.dll` + `IPHLPAPI.DLL` (multiplayer).
|
||||
- Std Win32: KERNEL32, USER32, GDI32, ADVAPI32, SHELL32, SHLWAPI, WINMM, ole32.
|
||||
|
||||
## Data
|
||||
- `sots.gob` (1.45 GB) + `sots_local_en.gob` (599 MB) — renamed uncompressed ZIPs (per
|
||||
community docs); openable directly. Modding is `./Mods/` override.
|
||||
|
||||
## Consequences for the plan
|
||||
- **Battle-load** becomes the primary bug target (LAA already done).
|
||||
- The RTTI analyzer should hand us the class hierarchy — the fastest path into the object
|
||||
model (goal #1), to be cross-referenced with the community save-editor structs.
|
||||
- D3D9 device init is a clean, well-anchored first renderer target.
|
||||
|
||||
_Fingerprint captured 2026-09-07 via objdump on CT111._
|
||||
Loading…
Add table
Reference in a new issue