server-re/decomp/INVENTORY.md

103 lines
7.6 KiB
Markdown

# Decomp inventory — Rusty Hearts server binaries
Generated 2026-10-14 from `binaries/` (read-only source). SHA-256 values are the
artifact identities used to correlate future REA Evidence (REA reports target
SHA-256; cite these values when reconciling).
Toolchain baseline: Ghidra 12.1.2 (`/opt/ghidra`, headless + native decompiler,
Java 21.0.2, linux/x64) · REA `rea-agents@6.5.0` (expected skill v42).
**Status legend:** `pending` = no REA session run yet · `open` = session analyzed,
decomp export incomplete · `done` = pseudocode + overview exported to
`decomp/<name>/`.
**Roles below are inferred from filenames/sizes alone and are NOT yet
corroborated by decompilation** (AGENTS.md ground rules). Treat them as
hypotheses to confirm or revise during analysis.
## Server executables (PE32+ x86-64, console subsystem unless noted)
| File | Bytes | KiB | SHA-256 | Role (inferred) | Status |
|------|------:|----:|---------|-----------------|--------|
| `GameServer_Release_USA_x64.exe` | 10564096 | 10316.5 | 5bc012107758a9bd23b1e20324f9e6664cd21f314382f5e8eabff0a55ed24277 | core gameplay server | pending |
| `DungeonServer_Release_USA_x64.exe` | 8931840 | 8722.5 | 8634e22dee65899addfa10c9bc7f9dfeac963135f9223b70d1ededa2ed97e8bc | dungeon/instance logic | pending |
| `PVPServer_Release_USA_x64.exe` | 8578048 | 8377.0 | 1605efdd60c4ecb2c21d96af63e063a39f0c4a6ca3159c0dfcadb3d6d33bb3c3 | PvP logic | pending |
| `GuildServer_Release_USA_x64.exe` | 6996480 | 6832.5 | 5265bbe9070f9a1f35793331ee0e3c2dac6f5ac064212916a9423c9d465b3cfb | guild logic | pending |
| `ManagerServer_Release_USA_x64.exe` | 6666752 | 6510.5 | c239477294c199f8df4ef70138cc1583c87838dd5e8cebed2ff0fae2bc6c5be2 | management/admin | pending |
| `AuctionServer_Release_USA_x64.exe` | 6477824 | 6326.0 | ebca9cc047aeca125ac0621e3652339096c74862746157adc6c72057422f6dcf | auction house | pending |
| `MatchServer_Release_USA_x64.exe` | 6134784 | 5991.0 | 341dd4a38c9e1abb590f60325ef52bf24b60a48a70e36e2f1651bbf00591fcf2 | matchmaking | pending |
| `DBCServer_Release_x64.exe` | 3542016 | 3459.0 | d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c | DB access server (observed: SERVERS2DBC RMI → write queues → ADO stored procs; 4 connection types) | open |
| `DBCServer_LOG_Release_x64.exe` | 3394560 | 3315.0 | 2636d51679abb7703a6386a398f2afb985704aa0ce00d53e75d0ff3b093f5836 | logging DB variant | pending |
| `GameGatewayServer_Release_x64.exe` | 3330560 | 3252.5 | 4cbec55dc3dfe5a0eeba3170722e6f1d33e55d6a0d007774266fe9db96f25d1a | gateway/proxy | pending |
| `GMServer_Release_x64.exe` | 2004480 | 1957.5 | 8fba9dbb8809419d6e2edaee31d9ad60501341d97dca0fc82a1c1e7cc32199d1 | game-master tools | pending |
| `MessageServer_Release_x64.exe` | 1850368 | 1807.0 | 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1 | chat/notice relay between servers (observed: 8 RMIs whisper/guild/all/channel chat, notices, mail notify; ProudNet) | open |
| `AgentManager_Release_x64.exe` | 1584128 | 1547.0 | 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186 | agent orchestration | pending |
| `Agent_Release_x64.exe` | 1472512 | 1438.0 | 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469 | process supervisor (observed: launch/kill/revive servers; ProudNet) | open |
| `SMMonitoring_Release_x64 1.exe` | 1294848 | 1264.5 | bc5197e350ab2054132cdad5c28a809fe2e64a55d4250ff8a53088d4de94515a | monitoring (GUI) | pending |
| `SMMonitoring_Release_x64 2.exe` | 1221120 | 1192.5 | 2d81a2fd547401826ad79c8d6e4db950641d6e59b5cb26a8158607aee0f0616f | monitoring (GUI), differs from #1 | pending |
## Support DLLs
Third-party/support libraries loaded by the servers. Decomp scope is
case-by-case (imports/behavior corroboration first; most are stock libraries).
| File | Bytes | SHA-256 | Note (inferred) |
|------|------:|---------|-----------------|
| `20100731_521_XTrap4Server.dll` | 22528 | 2c16b0930a1cc39b6dca2c800de0c111a1df32bd2bad66597a497d1a1716b042 | XTrap anti-cheat; byte-identical to `XTrap4Server.dll` (observed: equal SHA-256) |
| `XTrap4Server.dll` | 22528 | 2c16b0930a1cc39b6dca2c800de0c111a1df32bd2bad66597a497d1a1716b042 | duplicate of above |
| `ApexProxy.dll` | 150016 | a686e0667e398600d169f2cb089103fff1450b5489f6f1a749b0b70fccba712d | proxy/guard |
| `ApexProxyMain.dll` | 165888 | d4f9414ef80bda6094ec3b6d4ef931741722805009d5a0e0f62afc3ec64f6bbe | proxy/guard |
| `BugTrapU-x64.dll` | 354304 | 7f6b42dd796e23b4fcdc20612b2d5948cf6991e8216bf6e64e5e3edcd48d5a3c | crash reporting |
| `dbghelp.dll` | 1213200 | c06430b8cb025be506be50a756488e1bcc3827c4f45158d93e4e3eeb98ce1e4f | debug helpers |
| `hasp_windows_x64_95595.dll` | 4675584 | 97c7441ef2b363200c8e6d3487a99ac91d77587219dcdb095845ee722894a64d | Aladdin HASP licensing |
| `libcurld_Win32.dll` | 346112 | ba645055b84ff64287a2cc8e1e6a35497184e28511fd8e246bd955c8a170dba7 | libcurl (Win32, debug) |
| `libcurld_x64.dll` | 482816 | e969aac1ed3a46770ba90984ed9dcc2306d61b83d95a88994a01e6e5a34dac6b | libcurl (x64, debug) |
| `libcurl_Win32.dll` | 216064 | dfdd740ae25d7fae21a0467c19534fb99cc43d66d66f29b562247b1cdb729344 | libcurl (Win32) |
| `libcurl_x64.dll` | 270848 | f5a58bb70fb04945d35f944d8461a0bad6c98ef5a4637d4da2cda8821a5806a8 | libcurl (x64) |
| `libeay32.dll` | 1495040 | 964c1806cb532f9f03264181aada6e722e1ac2ff20f63ea0705802d061cc6b25 | OpenSSL crypto |
| `ssleay32.dll` | 301568 | 160eb58f7ea1370d5e1ead408d74bd343f860046ee2b8dc1cd39fe90202f8388 | OpenSSL SSL |
| `XLSLogin.dll` | 56360 | 2e7dbfa9c08becb467f54cfec9a85759cdb04d3195a2a94ddc4b254b0e30e5a5 | login helper |
Upstream sources for the open-source DLLs (OpenSSL 1.0.0d, curl 7.21.4,
BugTrap ~1.3) are in `third-party/`; provenance and match quality in
`third-party/README.md`.
Win32 (not x64) DLLs are present alongside x64 builds — likely shipped for
32-bit tools; x64 servers use the `_x64` variants (inference).
## Non-PE evidence (not decomp targets)
- `binaries/Lua/` — readable game scripts; cite directly as evidence.
- `binaries/table/`, `Map/`, `Item/`, `Character/`, `Object/`, `Effect/`, … —
game data assets; corroborating evidence for decomp findings, not binaries.
- `schema/` — SQL Server `.mdf`/`.ldf` for RustyHearts DBs; corroboration for
DB-related code paths (DBCServer, GameServer).
## Output layout convention (per AGENTS.md)
```
decomp/
INVENTORY.md <- this file
<binary_stem>/ <- one dir per analyzed binary, e.g. GameServer_Release_USA_x64/
binary_overview.json <- REA binary_overview / session metadata
<addr>.pseudo.c <- decompiled pseudocode, function-address-named
<addr>.asm <- listings where needed
evidence.md <- per-binary finding ledger (Evidence IDs, inferences, gaps)
```
Filenames must be stable and address-based so re-runs overwrite rather than
accumulate. Keep Evidence IDs from REA sessions in `evidence.md`.
## Pipeline status
- Ghidra provider: healthy (doctor 2026-10-14 — version, headless, decompiler,
Java all OK).
- REA MCP launch: **blocker resolved** (2026-10-14) — project `package.json`
declared `devEngines.packageManager: pnpm`, which made `npx` exit with
`EBADDEVENGINES` in this directory, so opencode could not start the server
(`server unavailable key=rea status=failed`). `devEngines` removed; local
`npx -y rea-agents@6.5.0 mcp` verified starting. Registration is
project-local only (`opencode.json`); the global `~/.config/opencode` drift
reported by `rea doctor` is accepted by design. **Requires an opencode
session restart for REA tools to connect.**
- Exports exist for Agent, MessageServer, DBCServer. Schema catalog dump in `decomp/schema/` (`decomp/scripts/dump_schema.sh`).