133 lines
8.4 KiB
JSON
133 lines
8.4 KiB
JSON
{
|
|
"schema": "sots-live-record-static-capture/1",
|
|
"session": "run-36c401e90eb0ec1db4d35865",
|
|
"scope": "Read-only PlayerEvent copy-constructor callable/write/unwind reconciliation; static planning evidence only, with no original-runtime, allocator, VM, Ghidra or build-host execution.",
|
|
"cwd": "/home/alex/sots-re",
|
|
"environment": {
|
|
"mode": "empty base environment",
|
|
"PATH": "/usr/bin:/bin",
|
|
"LC_ALL": "C"
|
|
},
|
|
"source_binding": {
|
|
"engine": {
|
|
"path": "/tmp/opencode/sots-final-research-engine",
|
|
"commit": "7741d42fc5e4e761e6449bdaf0e4a61d00036a23",
|
|
"sha256": "ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd",
|
|
"git_common_dir": "/home/alex/sots-engine/.git"
|
|
},
|
|
"re": {
|
|
"path": "/tmp/opencode/sots-final-research-re",
|
|
"commit": "3bfde5a70d874a723e797a695bbd847fd82c0aa7",
|
|
"sha256": "6696fd5201e144843617cbf6d78b41b5287ad5dcc9fa1e8aaa861d52b64e72e8",
|
|
"git_common_dir": "/home/alex/sots-re/.git"
|
|
}
|
|
},
|
|
"input": {
|
|
"path": "dumps/sots.exe",
|
|
"bytes": 7898624,
|
|
"sha256": "970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841"
|
|
},
|
|
"tools": [
|
|
{
|
|
"path": "/usr/bin/objdump",
|
|
"version": "GNU Binutils 2.38",
|
|
"sha256": "1eaaef2e7f57c4c7f69115c495e2466f5a8c8e5f3bc42221d092382f30f9d4cd"
|
|
},
|
|
{
|
|
"path": "/usr/bin/python3",
|
|
"version": "Python 3.10.12",
|
|
"sha256": "a2f33a6e006989270f4340528eb61f8f97366e00a5d1b602ac8672ea44fc56ae"
|
|
}
|
|
],
|
|
"commands": [
|
|
{
|
|
"name": "player-event-copy-context",
|
|
"argv": ["/usr/bin/objdump", "-D", "-Mintel", "--start-address=0x007693e0", "--stop-address=0x00769600", "dumps/sots.exe"],
|
|
"returncode": 0,
|
|
"stdout": "player-event-copy-context.stdout.txt",
|
|
"stderr": "player-event-copy-context.stderr.txt"
|
|
},
|
|
{
|
|
"name": "player-event-copy-exact",
|
|
"argv": ["/usr/bin/objdump", "-D", "-Mintel", "--start-address=0x007693f0", "--stop-address=0x007694c2", "dumps/sots.exe"],
|
|
"returncode": 0,
|
|
"stdout": "player-event-copy-exact.stdout.txt",
|
|
"stderr": "player-event-copy-exact.stderr.txt"
|
|
},
|
|
{
|
|
"name": "eh-handler-and-funclets",
|
|
"argv": ["/usr/bin/objdump", "-D", "-Mintel", "--start-address=0x009862c0", "--stop-address=0x00986320", "dumps/sots.exe"],
|
|
"returncode": 0,
|
|
"stdout": "player-event-copy-ehdata.stdout.txt",
|
|
"stderr": "player-event-copy-ehdata.stderr.txt"
|
|
},
|
|
{
|
|
"name": "funcinfo-context",
|
|
"argv": ["/usr/bin/objdump", "-D", "-Mintel", "--start-address=0x00ab9ee0", "--stop-address=0x00ab9f60", "dumps/sots.exe"],
|
|
"returncode": 0,
|
|
"stdout": "player-event-copy-funcinfo.stdout.txt",
|
|
"stderr": "player-event-copy-funcinfo.stderr.txt"
|
|
},
|
|
{
|
|
"name": "base-cleanup",
|
|
"argv": ["/usr/bin/objdump", "-D", "-Mintel", "--start-address=0x007639f0", "--stop-address=0x00763a30", "dumps/sots.exe"],
|
|
"returncode": 0,
|
|
"stdout": "player-event-copy-cleanup-base.stdout.txt",
|
|
"stderr": "player-event-copy-cleanup-base.stderr.txt"
|
|
},
|
|
{
|
|
"name": "string-cleanup",
|
|
"argv": ["/usr/bin/objdump", "-D", "-Mintel", "--start-address=0x008e0600", "--stop-address=0x008e0640", "dumps/sots.exe"],
|
|
"returncode": 0,
|
|
"stdout": "player-event-copy-cleanup-string.stdout.txt",
|
|
"stderr": "player-event-copy-cleanup-string.stderr.txt"
|
|
},
|
|
{
|
|
"name": "direct-pe-eh-extract",
|
|
"argv": ["/usr/bin/python3", "verify/results/research-live-record-bridge/run-36c401e90eb0ec1db4d35865/extract_player_event_copy_eh.py"],
|
|
"returncode": 0,
|
|
"outputs": ["player-event-copy-eh-record.bin", "player-event-copy-eh-analysis.json"]
|
|
}
|
|
],
|
|
"checks": {
|
|
"all_commands_returned_zero": true,
|
|
"all_command_stderr_empty": true,
|
|
"exact_callable_window_ends_ret_4_at_0x007694bf": true,
|
|
"exact_callable_capture_matches_accepted_dependency_bytes": true,
|
|
"all_logical_fields_copied": true,
|
|
"three_independent_string_deep_copies": true,
|
|
"source_owning_headers_never_transferred": true,
|
|
"eh_analysis_checks_pass": true
|
|
},
|
|
"observations": [
|
|
"ECX is writable uninitialized destination storage; the sole stack argument is the source; normal EAX is destination; return is ret 4.",
|
|
"The helper writes vptr and EvEID, deep-copy-constructs EvDsc and EvMsg, then copies EvLoc and all three EvPos words, deep-copy-constructs EvImg, and finally copies EvAct and EvCID.",
|
|
"Each destination string is independently initialized empty/SSO before string_assign_substr(offset=0,count=0xffffffff); no source owning header is transferred.",
|
|
"MSVC unwind states restore the base vptr, then destroy completed EvDsc, then completed EvMsg. A failing current string is not marked complete. No live throw or allocation was executed."
|
|
],
|
|
"accepted_dependency_captures": [
|
|
"verify/results/research-completion-abi-independent/integration-lead-20260910/player-copy-wide.stdout.txt",
|
|
"verify/results/research-completion-abi-independent/integration-lead-20260910/manifest.json"
|
|
],
|
|
"limitations": [
|
|
"Static planning evidence only; no live allocator, destructor, exception, game process or bridge operation was executed.",
|
|
"This package reconciles only PlayerEvent copy construction and does not make the contract ready."
|
|
],
|
|
"files": [
|
|
{"path": "verify/results/research-live-record-bridge/run-36c401e90eb0ec1db4d35865/extract_player_event_copy_eh.py", "bytes": 3278, "sha256": "961d518e81048e3835130a016bb4fa6341d2093e5a5a4e66d273794c16e012d8"},
|
|
{"path": "verify/results/research-live-record-bridge/run-36c401e90eb0ec1db4d35865/player-event-copy-cleanup-base.stderr.txt", "bytes": 0, "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},
|
|
{"path": "verify/results/research-live-record-bridge/run-36c401e90eb0ec1db4d35865/player-event-copy-cleanup-base.stdout.txt", "bytes": 1885, "sha256": "915d569711bb50f93c55900b640fec26ba7f09ec72ddb8a78654db011183045a"},
|
|
{"path": "verify/results/research-live-record-bridge/run-36c401e90eb0ec1db4d35865/player-event-copy-cleanup-string.stderr.txt", "bytes": 0, "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},
|
|
{"path": "verify/results/research-live-record-bridge/run-36c401e90eb0ec1db4d35865/player-event-copy-cleanup-string.stdout.txt", "bytes": 1709, "sha256": "65aa88d4d5c2dca77fea08774bcf2cf91765748d65e5db658633362102b67d5b"},
|
|
{"path": "verify/results/research-live-record-bridge/run-36c401e90eb0ec1db4d35865/player-event-copy-context.stderr.txt", "bytes": 0, "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},
|
|
{"path": "verify/results/research-live-record-bridge/run-36c401e90eb0ec1db4d35865/player-event-copy-context.stdout.txt", "bytes": 11685, "sha256": "bcd8a240ba187c9d9780422cbdfbb6679236dada9628ff6f8e4f4d57c15e4517"},
|
|
{"path": "verify/results/research-live-record-bridge/run-36c401e90eb0ec1db4d35865/player-event-copy-eh-analysis.json", "bytes": 998, "sha256": "27ebf1ddeb3ba7f9cf1ef2590c7fc295bc4aa511a3b054fe23320a83f9dfa682"},
|
|
{"path": "verify/results/research-live-record-bridge/run-36c401e90eb0ec1db4d35865/player-event-copy-eh-record.bin", "bytes": 60, "sha256": "a3bc2344790c1b1a3928110b80cf7367bcacf79727927f0763ef75585d558a86"},
|
|
{"path": "verify/results/research-live-record-bridge/run-36c401e90eb0ec1db4d35865/player-event-copy-ehdata.stderr.txt", "bytes": 0, "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},
|
|
{"path": "verify/results/research-live-record-bridge/run-36c401e90eb0ec1db4d35865/player-event-copy-ehdata.stdout.txt", "bytes": 1717, "sha256": "afc5b80aa63a68a2a1efff7340e5ca5202a0725213c68efc1cd729f58eee532b"},
|
|
{"path": "verify/results/research-live-record-bridge/run-36c401e90eb0ec1db4d35865/player-event-copy-exact.stderr.txt", "bytes": 0, "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},
|
|
{"path": "verify/results/research-live-record-bridge/run-36c401e90eb0ec1db4d35865/player-event-copy-exact.stdout.txt", "bytes": 4073, "sha256": "39de9e66a5944858572bf4bf2c3b3cc20ea42686e6657874c159fcf113ecf708"},
|
|
{"path": "verify/results/research-live-record-bridge/run-36c401e90eb0ec1db4d35865/player-event-copy-funcinfo.stderr.txt", "bytes": 0, "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},
|
|
{"path": "verify/results/research-live-record-bridge/run-36c401e90eb0ec1db4d35865/player-event-copy-funcinfo.stdout.txt", "bytes": 1987, "sha256": "f75f2f6dc94b39c2921d97209619cd9c8c664016b66567e8d24c18dbc2323ddb"}
|
|
]
|
|
}
|