re: recapture TurnEvents boundaries
This commit is contained in:
parent
3e850a4a88
commit
41a6840162
36 changed files with 12510 additions and 2 deletions
|
|
@ -21,7 +21,7 @@
|
|||
"path": "/home/alex/sots-re"
|
||||
}
|
||||
},
|
||||
"checkpoint": "campaign/runtime/checkpoints/research-completion-abi-ed14042366e407a5dc26e7a1.json",
|
||||
"checkpoint": "campaign/runtime/checkpoints/research-completion-abi-82fa3b0a12b0863401b9b0d1.json",
|
||||
"dependencies": [
|
||||
"controls-bootstrap"
|
||||
],
|
||||
|
|
|
|||
|
|
@ -20,6 +20,15 @@ package found three additional truncated historical stops (ObservedTech append/r
|
|||
string allocation/replacement); their widened streams are now the byte authority. No archive
|
||||
production-history inference or live-safety claim is made.
|
||||
|
||||
The TurnEvents correction's current-session boundary authority is
|
||||
`verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/`. It supersedes the stale-session
|
||||
attribution and truncated nested-copy stream invalidated by decisions
|
||||
`d-fd5aff1eaf78a8c15d96723c` and `d-0bb927e63b915c87a58d4257`. The package binds the actual session
|
||||
and a fail-if-used output directory; captures complete helper authority through `0x0077992f`; and
|
||||
retains `0x00779a20` as an expected-failing boundary beside complete `0x00779a21`, `0x00779a23`, and
|
||||
`0x00779a28` controls plus raw bytes. It is analyst static evidence awaiting a fresh independent
|
||||
verifier, not restored acceptance.
|
||||
|
||||
## Implementable machine boundaries recovered
|
||||
|
||||
* `0x008562a0`: ObservedTech default constructor, ECX receiver, EAX return, plain `ret`.
|
||||
|
|
|
|||
|
|
@ -0,0 +1,55 @@
|
|||
{
|
||||
"actor": "research-abi-analyst",
|
||||
"artifacts": [
|
||||
{
|
||||
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/manifest.json",
|
||||
"sha256": "aaada07613a2d2b10d99c4b0a5ee795501a5eba13250c5d3beece587acd8d4a4"
|
||||
},
|
||||
{
|
||||
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/report.md",
|
||||
"sha256": "6e74ff0197adc6c97f5924ad3f973d5e8922f1480268d1c96dac3dd89000e38f"
|
||||
},
|
||||
{
|
||||
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/capture.py",
|
||||
"sha256": "66e230d79a2f9903941ff206656b7c26123adb528cbe807c2e1d3132137a20d1"
|
||||
},
|
||||
{
|
||||
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/nested-copy-stop-a20.stdout.txt",
|
||||
"sha256": "e3988aa615066dce65ec16de0d61051ffc5deafe8c8eef4aeb0bbfbe931204a1"
|
||||
},
|
||||
{
|
||||
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/nested-copy-stop-a21.stdout.txt",
|
||||
"sha256": "b6d58767d00328c37139f439db480c9bb5ce6767dabf212f9e750a31fea0d3d7"
|
||||
},
|
||||
{
|
||||
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/nested-copy-stop-a23.stdout.txt",
|
||||
"sha256": "e8cc66eb74730fcf7853d66df8caa620ddb3fc8c75335f0573ac490037a7a88e"
|
||||
},
|
||||
{
|
||||
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/nested-copy-stop-a28.stdout.txt",
|
||||
"sha256": "7b02af65ab916de02fc44b2004f8acedc127bf686874bd0c75d4a277c40d9560"
|
||||
},
|
||||
{
|
||||
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/nested-copy-boundary-bytes.stdout.txt",
|
||||
"sha256": "b2d9b57274be71fcdd853f04758bc65d701e7b4cc169d0d5ede24c8788ef82d5"
|
||||
},
|
||||
{
|
||||
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/nested-copy-authority.stdout.txt",
|
||||
"sha256": "973c87ccab76a8454a4e43c83b59cdeace1e4f8c124c5aa9630cb956e3156bb8"
|
||||
},
|
||||
{
|
||||
"path": "campaign/research/research-completion-abi.md",
|
||||
"sha256": "8540eeb93aa377eeaff1c71541e918786966f7ed4df09e4c2add30451622ff0e"
|
||||
}
|
||||
],
|
||||
"basis": "aaddeb76f74bbd1a43671f882770ec84a7d690b4060d060ef1a68f918e8edbb0",
|
||||
"contract": "research-completion-abi",
|
||||
"id": "82fa3b0a12b0863401b9b0d1",
|
||||
"model": "openai/gpt-5.6-sol",
|
||||
"next_action": "Lead schedules an independent research-completion-abi verifier in a fresh real session to reproduce run-9daf5c3b75547271d5c3b4ed with its own fail-if-exists directory and execute the falsifiers listed in report.md.",
|
||||
"role": "analyst",
|
||||
"schema": "sots-checkpoint/1",
|
||||
"session": "run-9daf5c3b75547271d5c3b4ed",
|
||||
"summary": "Quantum-end handoff. OBSERVATIONS vs DECISIONS: Normal analyst recovery read canonical controls, needs-revision contract, resolver checkpoint, all surprise records (zero open), and governing decisions. Requested/claimed model is openai/gpt-5.6-sol, actor research-abi-analyst, role analyst, session run-9daf5c3b75547271d5c3b4ed; launcher registry agrees. Assigned worktrees remain baseline HEAD/common-dir identities: engine 7741d42fc5e4e761e6449bdaf0e4a61d00036a23 /home/alex/sots-engine/.git; RE 3bfde5a70d874a723e797a695bbd847fd82c0aa7 /home/alex/sots-re/.git. Preexisting dirt was not modified. Fresh source bindings before/after capture are engine ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd and RE 6696fd5201e144843617cbf6d78b41b5287ad5dcc9fa1e8aaa861d52b64e72e8. Fresh owned package has 12 positive objdump executions with pinned binary/tool and no failed manifest checks. Measured facts: a20 truncates terminal 74 despite success; a21/a23/a28 terminate complete 74 10 / 8b cf / e8 28 6a ff ff, matching raw bytes; bounded 0x779850..0x779930 contains normal return, unwind cleanup/deallocation and padding while excluding later code; other helper exact stops terminate complete. DECISION: a20 remains negative control; static get/create/nested-vector ordering and dependencies are reported, with live allocator safety, exceptional cleanup, event field semantics and runtime states explicitly unclaimed. Original helper ledger and missing spare/full, empty/nonempty, short/long, sentinel and throw inputs are in report. Independent falsifiers require own session/directory, fresh identities, held-out complete boundary, expected rejection of a20, distinct branch/state accounting and archived event-record checking. Tests: initial capture exit 0; deliberate second execution failed closed with FileExistsError before writes; all four package hashes remained checkpoint hashes; canonical campaign validate passed for five contracts; status remains needs-revision, evidence empty, zero open surprises. Changed only owned campaign/research/research-completion-abi.md and owned run directory. No commit/stage/push. Resources: no VM, Ghidra or build-host access; no leases acquired or held; no side effects/cleanup beyond read-only local objdump outputs.",
|
||||
"timestamp": "2026-09-10T05:03:57.074281+00:00"
|
||||
}
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
{
|
||||
"actor": "research-abi-analyst",
|
||||
"artifacts": [
|
||||
{
|
||||
"path": "campaign/runtime/decisions/d-fd5aff1eaf78a8c15d96723c.json",
|
||||
"sha256": "c58922b1bb4fd2c0c4bb5106bcc72de72a6f92c4ad533f7cd0c9f711d4b44ea7"
|
||||
},
|
||||
{
|
||||
"path": "campaign/runtime/decisions/d-0bb927e63b915c87a58d4257.json",
|
||||
"sha256": "866054afc1970b3cbb231d52386313a865d1165d87df72ca0057782fa81ead10"
|
||||
},
|
||||
{
|
||||
"path": "verify/results/research-completion-abi/run-79357a65226f61d6a86c042d/manifest.json",
|
||||
"sha256": "9961d182f025c669b116cab8e522fb840798d90776773b70a7dd602a79e1c224"
|
||||
}
|
||||
],
|
||||
"basis": "aaddeb76f74bbd1a43671f882770ec84a7d690b4060d060ef1a68f918e8edbb0",
|
||||
"contract": "research-completion-abi",
|
||||
"id": "993135dfa29517709b113a40",
|
||||
"model": "openai/gpt-5.6-sol",
|
||||
"next_action": "Create a fail-if-exists session-specific capture recipe for run-9daf5c3b75547271d5c3b4ed, then run the complete ownership windows, nested-copy boundary controls at 0x00779a20/21/23 and raw bytes through 0x00779a28 against the pinned executable.",
|
||||
"role": "analyst",
|
||||
"schema": "sots-checkpoint/1",
|
||||
"session": "run-9daf5c3b75547271d5c3b4ed",
|
||||
"summary": "Recovery checkpoint before experiment. OBSERVATIONS: canonical README/current policy, contract, resolver checkpoint, all 13 surprise records, and decisions d-fd5aff1eaf78a8c15d96723c/d-0bb927e63b915c87a58d4257 were read; campaign status reports needs-revision with zero open surprises and owner research-abi-analyst. Launcher record requests openai/gpt-5.6-sol for analyst and session run-9daf5c3b75547271d5c3b4ed; registry matches. Direct Git checks: engine /tmp/opencode/sots-final-research-engine HEAD 7741d42fc5e4e761e6449bdaf0e4a61d00036a23 common-dir /home/alex/sots-engine/.git; RE /tmp/opencode/sots-final-research-re HEAD 3bfde5a70d874a723e797a695bbd847fd82c0aa7 common-dir /home/alex/sots-re/.git. Both contain extensive preexisting dirty/untracked files; no source edits made. Launch source_before records complete source snapshots. Historical run-79357a65226f61d6a86c042d is not this session and cannot satisfy the resolver-required new current-session directory. DECISION: execute only the resolver-prescribed fresh static objdump capture in owned verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed, fail if it exists, with explicit session and negative stale-session/location checks. No VM/Ghidra/build-host use or mutation; no lease acquired or held. Tests so far: campaign status succeeded; Git baseline/common-dir checks matched. BLOCKERS: none for static capture; live allocator safety and runtime branch inputs remain unavailable and out of this experiment.",
|
||||
"timestamp": "2026-09-10T04:56:19.749144+00:00"
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
{
|
||||
"actor": "research-abi-analyst",
|
||||
"artifacts": [
|
||||
{
|
||||
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/manifest.json",
|
||||
"sha256": "aaada07613a2d2b10d99c4b0a5ee795501a5eba13250c5d3beece587acd8d4a4"
|
||||
},
|
||||
{
|
||||
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/report.md",
|
||||
"sha256": "6e74ff0197adc6c97f5924ad3f973d5e8922f1480268d1c96dac3dd89000e38f"
|
||||
},
|
||||
{
|
||||
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/capture.py",
|
||||
"sha256": "66e230d79a2f9903941ff206656b7c26123adb528cbe807c2e1d3132137a20d1"
|
||||
},
|
||||
{
|
||||
"path": "campaign/research/research-completion-abi.md",
|
||||
"sha256": "8540eeb93aa377eeaff1c71541e918786966f7ed4df09e4c2add30451622ff0e"
|
||||
}
|
||||
],
|
||||
"basis": "aaddeb76f74bbd1a43671f882770ec84a7d690b4060d060ef1a68f918e8edbb0",
|
||||
"contract": "research-completion-abi",
|
||||
"id": "ecf64f48db3b07d6312f2adf",
|
||||
"model": "openai/gpt-5.6-sol",
|
||||
"next_action": "Run the recipe a second time and require fail-closed reuse rejection, then validate canonical campaign state and write the quantum-end checkpoint handing this package to an independent verifier.",
|
||||
"role": "analyst",
|
||||
"schema": "sots-checkpoint/1",
|
||||
"session": "run-9daf5c3b75547271d5c3b4ed",
|
||||
"summary": "Post-experiment checkpoint. OBSERVATIONS: created fresh owned directory verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed only after fail-if-exists check. Session-bound capture recipe positively rejected missing/stale session, stale output and simulated reuse, then executed 12 read-only objdump commands; all return 0, stdout nonempty, stderr empty. Fresh binary identity 7898624 bytes/SHA256 970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841; objdump 2.38 373888 bytes/SHA256 1eaaef2e7f57c4c7f69115c495e2466f5a8c8e5f3bc42221d092382f30f9d4cd. Source before/after stable: engine ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd, RE 6696fd5201e144843617cbf6d78b41b5287ad5dcc9fa1e8aaa861d52b64e72e8 at baseline HEADs/assigned paths. Measured boundary: stop a20 emits truncated 74 despite zero exit; a21 emits complete 74 10; a23 adds complete 8b cf; a28 adds complete e8 28 6a ff ff; raw bytes match. Bounded authority 0x779850..0x779930 includes normal ret 4, unwind cleanup/deallocation and padding through 0x77992f, excluding later routine. Other exact windows terminate complete and wide controls add padding/prologue. DECISION: retain a20 only as expected-failing negative; report static ordering/ownership and no runtime safety. Updated owned campaign handoff to point to this package. Verifier falsifiers and missing distinct states are explicit in report. No surprise: resolver predictions held. No VM/Ghidra/build-host use; no lease acquired/held; no cleanup required. No engine/worktree source edits, staging, commit or push.",
|
||||
"timestamp": "2026-09-10T05:02:39.753309+00:00"
|
||||
}
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"contract": "research-completion-abi",
|
||||
"run": "run-daefd1b77558f324ae730b27",
|
||||
"run": "run-9daf5c3b75547271d5c3b4ed",
|
||||
"status": "complete"
|
||||
}
|
||||
|
|
|
|||
10361
campaign/runtime/runs/run-9daf5c3b75547271d5c3b4ed.json
Normal file
10361
campaign/runtime/runs/run-9daf5c3b75547271d5c3b4ed.json
Normal file
File diff suppressed because it is too large
Load diff
127
campaign/runtime/runs/run-9daf5c3b75547271d5c3b4ed.jsonl
Normal file
127
campaign/runtime/runs/run-9daf5c3b75547271d5c3b4ed.jsonl
Normal file
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1,163 @@
|
|||
#!/usr/bin/env python3
|
||||
"""Fresh, session-bound static capture required by two 2026-09-10 Astra decisions."""
|
||||
|
||||
import argparse
|
||||
import hashlib
|
||||
import json
|
||||
import subprocess
|
||||
from datetime import datetime, timezone
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
ROOT = Path("/home/alex/sots-re")
|
||||
SESSION = "run-9daf5c3b75547271d5c3b4ed"
|
||||
STALE_SESSION = "run-ee78b8773688ca09f8046e21"
|
||||
REL_OUT = Path("verify/results/research-completion-abi") / SESSION
|
||||
OUT = ROOT / REL_OUT
|
||||
BINARY = ROOT / "dumps/sots.exe"
|
||||
TOOL = Path("/usr/bin/objdump")
|
||||
CAMPAIGN = ROOT / "tools/campaign.py"
|
||||
ENGINE_TREE = Path("/tmp/opencode/sots-final-research-engine")
|
||||
RE_TREE = Path("/tmp/opencode/sots-final-research-re")
|
||||
EXPECTED_BINARY = "970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841"
|
||||
EXPECTED_TOOL = "1eaaef2e7f57c4c7f69115c495e2466f5a8c8e5f3bc42221d092382f30f9d4cd"
|
||||
|
||||
# Exact historical windows remain controls. Each companion widened stop was already shown
|
||||
# to add rows without changing the exact rows, except nested-copy's known-bad historical stop.
|
||||
DISASSEMBLY = (
|
||||
("turn-get-create-exact", 0x00885380, 0x0088544A, "complete-control"),
|
||||
("turn-get-create-wide", 0x00885380, 0x0088544E, "boundary-audit"),
|
||||
("turn-append-exact", 0x00884CB0, 0x00884D8F, "complete-control"),
|
||||
("turn-append-wide", 0x00884CB0, 0x00884D93, "boundary-audit"),
|
||||
("nested-dtor-exact", 0x00629580, 0x006295CA, "complete-control"),
|
||||
("nested-dtor-wide", 0x00629580, 0x006295CE, "boundary-audit"),
|
||||
("nested-copy-authority", 0x00779850, 0x00779930, "bounded-authority"),
|
||||
("nested-copy-stop-a20", 0x00779850, 0x00779A20, "expected-truncated-negative"),
|
||||
("nested-copy-stop-a21", 0x00779850, 0x00779A21, "predicted-complete-je"),
|
||||
("nested-copy-stop-a23", 0x00779850, 0x00779A23, "predicted-complete-mov"),
|
||||
("nested-copy-stop-a28", 0x00779850, 0x00779A28, "complete-call-boundary-control"),
|
||||
)
|
||||
|
||||
RAW_BYTES = (
|
||||
("nested-copy-boundary-bytes", 0x00779A1F, 0x00779A28),
|
||||
)
|
||||
|
||||
|
||||
def sha(data: bytes) -> str:
|
||||
return hashlib.sha256(data).hexdigest()
|
||||
|
||||
|
||||
def file_identity(path: Path) -> dict:
|
||||
data = path.read_bytes()
|
||||
return {"path": str(path), "bytes": len(data), "sha256": sha(data)}
|
||||
|
||||
|
||||
def validate_identity(session: str, output: Path, entries: list[str]) -> None:
|
||||
if not session:
|
||||
raise ValueError("missing session")
|
||||
if session == STALE_SESSION or session != SESSION:
|
||||
raise ValueError("stale or unexpected session")
|
||||
if output.resolve() != OUT.resolve() or output.name != session:
|
||||
raise ValueError("output location is not bound to session")
|
||||
if sorted(entries) not in ([], ["capture.py"]):
|
||||
raise FileExistsError("output location was already used")
|
||||
|
||||
|
||||
def source_binding() -> dict:
|
||||
argv = [
|
||||
"python3", str(CAMPAIGN), "--state-root", str(ROOT), "source-binding",
|
||||
"research-completion-abi", "--engine-worktree", str(ENGINE_TREE),
|
||||
"--re-worktree", str(RE_TREE),
|
||||
]
|
||||
proc = subprocess.run(argv, cwd=ROOT, check=True, capture_output=True, text=True)
|
||||
return {"argv": argv, "value": json.loads(proc.stdout)}
|
||||
|
||||
|
||||
def run_capture(name: str, argv: list[str], classification: str) -> dict:
|
||||
proc = subprocess.run(argv, cwd=ROOT, check=False, capture_output=True)
|
||||
stdout_path = OUT / f"{name}.stdout.txt"
|
||||
stderr_path = OUT / f"{name}.stderr.txt"
|
||||
stdout_path.write_bytes(proc.stdout)
|
||||
stderr_path.write_bytes(proc.stderr)
|
||||
return {
|
||||
"name": name,
|
||||
"classification": classification,
|
||||
"argv": argv,
|
||||
"cwd": str(ROOT),
|
||||
"returncode": proc.returncode,
|
||||
"stdout": {"path": str(stdout_path.relative_to(ROOT)), "bytes": len(proc.stdout), "sha256": sha(proc.stdout)},
|
||||
"stderr": {"path": str(stderr_path.relative_to(ROOT)), "bytes": len(proc.stderr), "sha256": sha(proc.stderr)},
|
||||
}
|
||||
|
||||
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument("--session", required=True)
|
||||
parser.add_argument("--output", required=True, type=Path)
|
||||
args = parser.parse_args()
|
||||
|
||||
negative_preflight = []
|
||||
for name, candidate_session, candidate_output, entries in (
|
||||
("reject-missing-session", "", OUT, ["capture.py"]),
|
||||
("reject-stale-session", STALE_SESSION, OUT, ["capture.py"]),
|
||||
("reject-stale-output", SESSION, ROOT / "verify/results/research-completion-abi" / STALE_SESSION, ["capture.py"]),
|
||||
("reject-reused-output", SESSION, OUT, ["capture.py", "prior-output.txt"]),
|
||||
):
|
||||
try:
|
||||
validate_identity(candidate_session, candidate_output, entries)
|
||||
except (ValueError, FileExistsError) as exc:
|
||||
negative_preflight.append({"name": name, "status": "pass", "rejection": str(exc)})
|
||||
else:
|
||||
raise SystemExit(f"negative preflight unexpectedly accepted: {name}")
|
||||
|
||||
validate_identity(args.session, args.output, [p.name for p in OUT.iterdir()])
|
||||
before = source_binding()
|
||||
binary = file_identity(BINARY)
|
||||
tool = file_identity(TOOL)
|
||||
if binary["sha256"] != EXPECTED_BINARY or tool["sha256"] != EXPECTED_TOOL:
|
||||
raise SystemExit("binary/tool identity drift")
|
||||
|
||||
records = []
|
||||
for name, start, stop, classification in DISASSEMBLY:
|
||||
records.append(run_capture(name, [
|
||||
str(TOOL), "-D", "-Mintel", f"--start-address=0x{start:08x}",
|
||||
f"--stop-address=0x{stop:08x}", str(BINARY),
|
||||
], classification))
|
||||
for name, start, stop in RAW_BYTES:
|
||||
records.append(run_capture(name, [
|
||||
str(TOOL), "-s", "-j", ".text", f"--start-address=0x{start:08x}",
|
||||
f"--stop-address=0x{stop:08x}", str(BINARY),
|
||||
], "raw-byte-boundary-control"))
|
||||
|
||||
after = source_binding()
|
||||
checks = {
|
||||
"explicit-session": args.session == SESSION,
|
||||
"session-output-match": args.output.resolve() == OUT.resolve(),
|
||||
"negative-preflight-all-rejected": all(x["status"] == "pass" for x in negative_preflight),
|
||||
"binary-hash": binary["sha256"] == EXPECTED_BINARY,
|
||||
"tool-hash": tool["sha256"] == EXPECTED_TOOL,
|
||||
"source-stable": before["value"] == after["value"],
|
||||
"all-return-zero": all(x["returncode"] == 0 for x in records),
|
||||
"all-stdout-nonempty": all(x["stdout"]["bytes"] > 0 for x in records),
|
||||
"all-stderr-empty": all(x["stderr"]["bytes"] == 0 for x in records),
|
||||
}
|
||||
manifest = {
|
||||
"schema": "sots-abi-static-capture/1",
|
||||
"session": SESSION,
|
||||
"actor": "research-abi-analyst",
|
||||
"role": "analyst",
|
||||
"model": "openai/gpt-5.6-sol",
|
||||
"timestamp": datetime.now(timezone.utc).isoformat(),
|
||||
"decisions": ["d-fd5aff1eaf78a8c15d96723c", "d-0bb927e63b915c87a58d4257"],
|
||||
"scope": "Fresh read-only static capture; no game, allocator, constructor, destructor, exception, or RNG execution.",
|
||||
"negative_preflight": negative_preflight,
|
||||
"source_before": before,
|
||||
"source_after": after,
|
||||
"input": binary,
|
||||
"tool": {**tool, "version": subprocess.run([str(TOOL), "--version"], check=True, capture_output=True, text=True).stdout.splitlines()[0]},
|
||||
"commands": records,
|
||||
"checks": [{"name": name, "status": "pass" if status else "fail"} for name, status in checks.items()],
|
||||
"failed": [name for name, status in checks.items() if not status],
|
||||
}
|
||||
(OUT / "manifest.json").write_text(json.dumps(manifest, indent=2) + "\n")
|
||||
print(json.dumps({"commands": len(records), "failed": manifest["failed"], "manifest": str((OUT / "manifest.json").relative_to(ROOT))}, indent=2))
|
||||
raise SystemExit(bool(manifest["failed"]))
|
||||
|
|
@ -0,0 +1,428 @@
|
|||
{
|
||||
"schema": "sots-abi-static-capture/1",
|
||||
"session": "run-9daf5c3b75547271d5c3b4ed",
|
||||
"actor": "research-abi-analyst",
|
||||
"role": "analyst",
|
||||
"model": "openai/gpt-5.6-sol",
|
||||
"timestamp": "2026-09-10T04:59:38.840348+00:00",
|
||||
"decisions": [
|
||||
"d-fd5aff1eaf78a8c15d96723c",
|
||||
"d-0bb927e63b915c87a58d4257"
|
||||
],
|
||||
"scope": "Fresh read-only static capture; no game, allocator, constructor, destructor, exception, or RNG execution.",
|
||||
"negative_preflight": [
|
||||
{
|
||||
"name": "reject-missing-session",
|
||||
"status": "pass",
|
||||
"rejection": "missing session"
|
||||
},
|
||||
{
|
||||
"name": "reject-stale-session",
|
||||
"status": "pass",
|
||||
"rejection": "stale or unexpected session"
|
||||
},
|
||||
{
|
||||
"name": "reject-stale-output",
|
||||
"status": "pass",
|
||||
"rejection": "output location is not bound to session"
|
||||
},
|
||||
{
|
||||
"name": "reject-reused-output",
|
||||
"status": "pass",
|
||||
"rejection": "output location was already used"
|
||||
}
|
||||
],
|
||||
"source_before": {
|
||||
"argv": [
|
||||
"python3",
|
||||
"/home/alex/sots-re/tools/campaign.py",
|
||||
"--state-root",
|
||||
"/home/alex/sots-re",
|
||||
"source-binding",
|
||||
"research-completion-abi",
|
||||
"--engine-worktree",
|
||||
"/tmp/opencode/sots-final-research-engine",
|
||||
"--re-worktree",
|
||||
"/tmp/opencode/sots-final-research-re"
|
||||
],
|
||||
"value": {
|
||||
"engine": {
|
||||
"commit": "7741d42fc5e4e761e6449bdaf0e4a61d00036a23",
|
||||
"path": "/tmp/opencode/sots-final-research-engine",
|
||||
"sha256": "ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd"
|
||||
},
|
||||
"re": {
|
||||
"commit": "3bfde5a70d874a723e797a695bbd847fd82c0aa7",
|
||||
"path": "/tmp/opencode/sots-final-research-re",
|
||||
"sha256": "6696fd5201e144843617cbf6d78b41b5287ad5dcc9fa1e8aaa861d52b64e72e8"
|
||||
}
|
||||
}
|
||||
},
|
||||
"source_after": {
|
||||
"argv": [
|
||||
"python3",
|
||||
"/home/alex/sots-re/tools/campaign.py",
|
||||
"--state-root",
|
||||
"/home/alex/sots-re",
|
||||
"source-binding",
|
||||
"research-completion-abi",
|
||||
"--engine-worktree",
|
||||
"/tmp/opencode/sots-final-research-engine",
|
||||
"--re-worktree",
|
||||
"/tmp/opencode/sots-final-research-re"
|
||||
],
|
||||
"value": {
|
||||
"engine": {
|
||||
"commit": "7741d42fc5e4e761e6449bdaf0e4a61d00036a23",
|
||||
"path": "/tmp/opencode/sots-final-research-engine",
|
||||
"sha256": "ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd"
|
||||
},
|
||||
"re": {
|
||||
"commit": "3bfde5a70d874a723e797a695bbd847fd82c0aa7",
|
||||
"path": "/tmp/opencode/sots-final-research-re",
|
||||
"sha256": "6696fd5201e144843617cbf6d78b41b5287ad5dcc9fa1e8aaa861d52b64e72e8"
|
||||
}
|
||||
}
|
||||
},
|
||||
"input": {
|
||||
"path": "/home/alex/sots-re/dumps/sots.exe",
|
||||
"bytes": 7898624,
|
||||
"sha256": "970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841"
|
||||
},
|
||||
"tool": {
|
||||
"path": "/usr/bin/objdump",
|
||||
"bytes": 373888,
|
||||
"sha256": "1eaaef2e7f57c4c7f69115c495e2466f5a8c8e5f3bc42221d092382f30f9d4cd",
|
||||
"version": "GNU objdump (GNU Binutils for Ubuntu) 2.38"
|
||||
},
|
||||
"commands": [
|
||||
{
|
||||
"name": "turn-get-create-exact",
|
||||
"classification": "complete-control",
|
||||
"argv": [
|
||||
"/usr/bin/objdump",
|
||||
"-D",
|
||||
"-Mintel",
|
||||
"--start-address=0x00885380",
|
||||
"--stop-address=0x0088544a",
|
||||
"/home/alex/sots-re/dumps/sots.exe"
|
||||
],
|
||||
"cwd": "/home/alex/sots-re",
|
||||
"returncode": 0,
|
||||
"stdout": {
|
||||
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/turn-get-create-exact.stdout.txt",
|
||||
"bytes": 3974,
|
||||
"sha256": "f6e72ba9b08fdf48d70f39379b2fb30a5adbe796072485f70c5795c10ab45ca3"
|
||||
},
|
||||
"stderr": {
|
||||
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/turn-get-create-exact.stderr.txt",
|
||||
"bytes": 0,
|
||||
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "turn-get-create-wide",
|
||||
"classification": "boundary-audit",
|
||||
"argv": [
|
||||
"/usr/bin/objdump",
|
||||
"-D",
|
||||
"-Mintel",
|
||||
"--start-address=0x00885380",
|
||||
"--stop-address=0x0088544e",
|
||||
"/home/alex/sots-re/dumps/sots.exe"
|
||||
],
|
||||
"cwd": "/home/alex/sots-re",
|
||||
"returncode": 0,
|
||||
"stdout": {
|
||||
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/turn-get-create-wide.stdout.txt",
|
||||
"bytes": 4134,
|
||||
"sha256": "9cb7d2ccfcc645b3b642e520ba51c85330c57d6d4395ed3fbd4a4a1950436e80"
|
||||
},
|
||||
"stderr": {
|
||||
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/turn-get-create-wide.stderr.txt",
|
||||
"bytes": 0,
|
||||
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "turn-append-exact",
|
||||
"classification": "complete-control",
|
||||
"argv": [
|
||||
"/usr/bin/objdump",
|
||||
"-D",
|
||||
"-Mintel",
|
||||
"--start-address=0x00884cb0",
|
||||
"--stop-address=0x00884d8f",
|
||||
"/home/alex/sots-re/dumps/sots.exe"
|
||||
],
|
||||
"cwd": "/home/alex/sots-re",
|
||||
"returncode": 0,
|
||||
"stdout": {
|
||||
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/turn-append-exact.stdout.txt",
|
||||
"bytes": 4179,
|
||||
"sha256": "57d6655feed0fc137bb2b7eee4bfcb09536b5a715603c917ee142770f1d52a15"
|
||||
},
|
||||
"stderr": {
|
||||
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/turn-append-exact.stderr.txt",
|
||||
"bytes": 0,
|
||||
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "turn-append-wide",
|
||||
"classification": "boundary-audit",
|
||||
"argv": [
|
||||
"/usr/bin/objdump",
|
||||
"-D",
|
||||
"-Mintel",
|
||||
"--start-address=0x00884cb0",
|
||||
"--stop-address=0x00884d93",
|
||||
"/home/alex/sots-re/dumps/sots.exe"
|
||||
],
|
||||
"cwd": "/home/alex/sots-re",
|
||||
"returncode": 0,
|
||||
"stdout": {
|
||||
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/turn-append-wide.stdout.txt",
|
||||
"bytes": 4309,
|
||||
"sha256": "957339f40b2af8947cb883cc1d3a9d1e151bf7663305415065472ef9171dc33d"
|
||||
},
|
||||
"stderr": {
|
||||
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/turn-append-wide.stderr.txt",
|
||||
"bytes": 0,
|
||||
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "nested-dtor-exact",
|
||||
"classification": "complete-control",
|
||||
"argv": [
|
||||
"/usr/bin/objdump",
|
||||
"-D",
|
||||
"-Mintel",
|
||||
"--start-address=0x00629580",
|
||||
"--stop-address=0x006295ca",
|
||||
"/home/alex/sots-re/dumps/sots.exe"
|
||||
],
|
||||
"cwd": "/home/alex/sots-re",
|
||||
"returncode": 0,
|
||||
"stdout": {
|
||||
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/nested-dtor-exact.stdout.txt",
|
||||
"bytes": 1727,
|
||||
"sha256": "3c38887e60d009ab904772b13be93ac1eedd9bee85024e37110160a625db3a83"
|
||||
},
|
||||
"stderr": {
|
||||
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/nested-dtor-exact.stderr.txt",
|
||||
"bytes": 0,
|
||||
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "nested-dtor-wide",
|
||||
"classification": "boundary-audit",
|
||||
"argv": [
|
||||
"/usr/bin/objdump",
|
||||
"-D",
|
||||
"-Mintel",
|
||||
"--start-address=0x00629580",
|
||||
"--stop-address=0x006295ce",
|
||||
"/home/alex/sots-re/dumps/sots.exe"
|
||||
],
|
||||
"cwd": "/home/alex/sots-re",
|
||||
"returncode": 0,
|
||||
"stdout": {
|
||||
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/nested-dtor-wide.stdout.txt",
|
||||
"bytes": 1887,
|
||||
"sha256": "0aba6fc800760e3a113c07238cfb6e721623eb0bb8a933a990d3e2e82823d00f"
|
||||
},
|
||||
"stderr": {
|
||||
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/nested-dtor-wide.stderr.txt",
|
||||
"bytes": 0,
|
||||
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "nested-copy-authority",
|
||||
"classification": "bounded-authority",
|
||||
"argv": [
|
||||
"/usr/bin/objdump",
|
||||
"-D",
|
||||
"-Mintel",
|
||||
"--start-address=0x00779850",
|
||||
"--stop-address=0x00779930",
|
||||
"/home/alex/sots-re/dumps/sots.exe"
|
||||
],
|
||||
"cwd": "/home/alex/sots-re",
|
||||
"returncode": 0,
|
||||
"stdout": {
|
||||
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/nested-copy-authority.stdout.txt",
|
||||
"bytes": 4465,
|
||||
"sha256": "973c87ccab76a8454a4e43c83b59cdeace1e4f8c124c5aa9630cb956e3156bb8"
|
||||
},
|
||||
"stderr": {
|
||||
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/nested-copy-authority.stderr.txt",
|
||||
"bytes": 0,
|
||||
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "nested-copy-stop-a20",
|
||||
"classification": "expected-truncated-negative",
|
||||
"argv": [
|
||||
"/usr/bin/objdump",
|
||||
"-D",
|
||||
"-Mintel",
|
||||
"--start-address=0x00779850",
|
||||
"--stop-address=0x00779a20",
|
||||
"/home/alex/sots-re/dumps/sots.exe"
|
||||
],
|
||||
"cwd": "/home/alex/sots-re",
|
||||
"returncode": 0,
|
||||
"stdout": {
|
||||
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/nested-copy-stop-a20.stdout.txt",
|
||||
"bytes": 8469,
|
||||
"sha256": "e3988aa615066dce65ec16de0d61051ffc5deafe8c8eef4aeb0bbfbe931204a1"
|
||||
},
|
||||
"stderr": {
|
||||
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/nested-copy-stop-a20.stderr.txt",
|
||||
"bytes": 0,
|
||||
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "nested-copy-stop-a21",
|
||||
"classification": "predicted-complete-je",
|
||||
"argv": [
|
||||
"/usr/bin/objdump",
|
||||
"-D",
|
||||
"-Mintel",
|
||||
"--start-address=0x00779850",
|
||||
"--stop-address=0x00779a21",
|
||||
"/home/alex/sots-re/dumps/sots.exe"
|
||||
],
|
||||
"cwd": "/home/alex/sots-re",
|
||||
"returncode": 0,
|
||||
"stdout": {
|
||||
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/nested-copy-stop-a21.stdout.txt",
|
||||
"bytes": 8471,
|
||||
"sha256": "b6d58767d00328c37139f439db480c9bb5ce6767dabf212f9e750a31fea0d3d7"
|
||||
},
|
||||
"stderr": {
|
||||
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/nested-copy-stop-a21.stderr.txt",
|
||||
"bytes": 0,
|
||||
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "nested-copy-stop-a23",
|
||||
"classification": "predicted-complete-mov",
|
||||
"argv": [
|
||||
"/usr/bin/objdump",
|
||||
"-D",
|
||||
"-Mintel",
|
||||
"--start-address=0x00779850",
|
||||
"--stop-address=0x00779a23",
|
||||
"/home/alex/sots-re/dumps/sots.exe"
|
||||
],
|
||||
"cwd": "/home/alex/sots-re",
|
||||
"returncode": 0,
|
||||
"stdout": {
|
||||
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/nested-copy-stop-a23.stdout.txt",
|
||||
"bytes": 8518,
|
||||
"sha256": "e8cc66eb74730fcf7853d66df8caa620ddb3fc8c75335f0573ac490037a7a88e"
|
||||
},
|
||||
"stderr": {
|
||||
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/nested-copy-stop-a23.stderr.txt",
|
||||
"bytes": 0,
|
||||
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "nested-copy-stop-a28",
|
||||
"classification": "complete-call-boundary-control",
|
||||
"argv": [
|
||||
"/usr/bin/objdump",
|
||||
"-D",
|
||||
"-Mintel",
|
||||
"--start-address=0x00779850",
|
||||
"--stop-address=0x00779a28",
|
||||
"/home/alex/sots-re/dumps/sots.exe"
|
||||
],
|
||||
"cwd": "/home/alex/sots-re",
|
||||
"returncode": 0,
|
||||
"stdout": {
|
||||
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/nested-copy-stop-a28.stdout.txt",
|
||||
"bytes": 8566,
|
||||
"sha256": "7b02af65ab916de02fc44b2004f8acedc127bf686874bd0c75d4a277c40d9560"
|
||||
},
|
||||
"stderr": {
|
||||
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/nested-copy-stop-a28.stderr.txt",
|
||||
"bytes": 0,
|
||||
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "nested-copy-boundary-bytes",
|
||||
"classification": "raw-byte-boundary-control",
|
||||
"argv": [
|
||||
"/usr/bin/objdump",
|
||||
"-s",
|
||||
"-j",
|
||||
".text",
|
||||
"--start-address=0x00779a1f",
|
||||
"--stop-address=0x00779a28",
|
||||
"/home/alex/sots-re/dumps/sots.exe"
|
||||
],
|
||||
"cwd": "/home/alex/sots-re",
|
||||
"returncode": 0,
|
||||
"stdout": {
|
||||
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/nested-copy-boundary-bytes.stdout.txt",
|
||||
"bytes": 151,
|
||||
"sha256": "b2d9b57274be71fcdd853f04758bc65d701e7b4cc169d0d5ede24c8788ef82d5"
|
||||
},
|
||||
"stderr": {
|
||||
"path": "verify/results/research-completion-abi/run-9daf5c3b75547271d5c3b4ed/nested-copy-boundary-bytes.stderr.txt",
|
||||
"bytes": 0,
|
||||
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
||||
}
|
||||
}
|
||||
],
|
||||
"checks": [
|
||||
{
|
||||
"name": "explicit-session",
|
||||
"status": "pass"
|
||||
},
|
||||
{
|
||||
"name": "session-output-match",
|
||||
"status": "pass"
|
||||
},
|
||||
{
|
||||
"name": "negative-preflight-all-rejected",
|
||||
"status": "pass"
|
||||
},
|
||||
{
|
||||
"name": "binary-hash",
|
||||
"status": "pass"
|
||||
},
|
||||
{
|
||||
"name": "tool-hash",
|
||||
"status": "pass"
|
||||
},
|
||||
{
|
||||
"name": "source-stable",
|
||||
"status": "pass"
|
||||
},
|
||||
{
|
||||
"name": "all-return-zero",
|
||||
"status": "pass"
|
||||
},
|
||||
{
|
||||
"name": "all-stdout-nonempty",
|
||||
"status": "pass"
|
||||
},
|
||||
{
|
||||
"name": "all-stderr-empty",
|
||||
"status": "pass"
|
||||
}
|
||||
],
|
||||
"failed": []
|
||||
}
|
||||
|
|
@ -0,0 +1,94 @@
|
|||
|
||||
/home/alex/sots-re/dumps/sots.exe: file format pei-i386
|
||||
|
||||
|
||||
Disassembly of section .text:
|
||||
|
||||
00779850 <.text+0x378850>:
|
||||
779850: 55 push ebp
|
||||
779851: 8b ec mov ebp,esp
|
||||
779853: 6a ff push 0xffffffff
|
||||
779855: 68 10 7b 98 00 push 0x987b10
|
||||
77985a: 64 a1 00 00 00 00 mov eax,fs:0x0
|
||||
779860: 50 push eax
|
||||
779861: 83 ec 08 sub esp,0x8
|
||||
779864: 53 push ebx
|
||||
779865: 56 push esi
|
||||
779866: 57 push edi
|
||||
779867: a1 78 8b af 00 mov eax,ds:0xaf8b78
|
||||
77986c: 33 c5 xor eax,ebp
|
||||
77986e: 50 push eax
|
||||
77986f: 8d 45 f4 lea eax,[ebp-0xc]
|
||||
779872: 64 a3 00 00 00 00 mov fs:0x0,eax
|
||||
779878: 89 65 f0 mov DWORD PTR [ebp-0x10],esp
|
||||
77987b: 8b f1 mov esi,ecx
|
||||
77987d: 89 75 ec mov DWORD PTR [ebp-0x14],esi
|
||||
779880: 8b 5d 08 mov ebx,DWORD PTR [ebp+0x8]
|
||||
779883: 33 c0 xor eax,eax
|
||||
779885: 89 06 mov DWORD PTR [esi],eax
|
||||
779887: 89 46 04 mov DWORD PTR [esi+0x4],eax
|
||||
77988a: 89 46 08 mov DWORD PTR [esi+0x8],eax
|
||||
77988d: 8b 4b 04 mov ecx,DWORD PTR [ebx+0x4]
|
||||
779890: 2b 0b sub ecx,DWORD PTR [ebx]
|
||||
779892: b8 09 cb 3d 8d mov eax,0x8d3dcb09
|
||||
779897: f7 e9 imul ecx
|
||||
779899: 03 d1 add edx,ecx
|
||||
77989b: c1 fa 06 sar edx,0x6
|
||||
77989e: 8b fa mov edi,edx
|
||||
7798a0: b8 00 00 00 00 mov eax,0x0
|
||||
7798a5: c1 ef 1f shr edi,0x1f
|
||||
7798a8: 03 fa add edi,edx
|
||||
7798aa: 89 06 mov DWORD PTR [esi],eax
|
||||
7798ac: 89 46 04 mov DWORD PTR [esi+0x4],eax
|
||||
7798af: 89 46 08 mov DWORD PTR [esi+0x8],eax
|
||||
7798b2: 74 4b je 0x7798ff
|
||||
7798b4: 81 ff 2c f7 34 02 cmp edi,0x234f72c
|
||||
7798ba: 76 0b jbe 0x7798c7
|
||||
7798bc: 68 90 1f 9e 00 push 0x9e1f90
|
||||
7798c1: ff 15 50 d1 9d 00 call DWORD PTR ds:0x9dd150
|
||||
7798c7: 8d 4e 0c lea ecx,[esi+0xc]
|
||||
7798ca: 57 push edi
|
||||
7798cb: e8 70 16 01 00 call 0x78af40
|
||||
7798d0: 6b ff 74 imul edi,edi,0x74
|
||||
7798d3: 8b 55 08 mov edx,DWORD PTR [ebp+0x8]
|
||||
7798d6: 52 push edx
|
||||
7798d7: 8d 56 0c lea edx,[esi+0xc]
|
||||
7798da: 52 push edx
|
||||
7798db: 03 f8 add edi,eax
|
||||
7798dd: 89 06 mov DWORD PTR [esi],eax
|
||||
7798df: 89 46 04 mov DWORD PTR [esi+0x4],eax
|
||||
7798e2: 89 7e 08 mov DWORD PTR [esi+0x8],edi
|
||||
7798e5: 8b 4b 04 mov ecx,DWORD PTR [ebx+0x4]
|
||||
7798e8: 8b 1b mov ebx,DWORD PTR [ebx]
|
||||
7798ea: 50 push eax
|
||||
7798eb: 51 push ecx
|
||||
7798ec: 53 push ebx
|
||||
7798ed: c7 45 fc 00 00 00 00 mov DWORD PTR [ebp-0x4],0x0
|
||||
7798f4: e8 a7 8c ff ff call 0x7725a0
|
||||
7798f9: 83 c4 14 add esp,0x14
|
||||
7798fc: 89 46 04 mov DWORD PTR [esi+0x4],eax
|
||||
7798ff: 8b c6 mov eax,esi
|
||||
779901: 8b 4d f4 mov ecx,DWORD PTR [ebp-0xc]
|
||||
779904: 64 89 0d 00 00 00 00 mov DWORD PTR fs:0x0,ecx
|
||||
77990b: 59 pop ecx
|
||||
77990c: 5f pop edi
|
||||
77990d: 5e pop esi
|
||||
77990e: 5b pop ebx
|
||||
77990f: 8b e5 mov esp,ebp
|
||||
779911: 5d pop ebp
|
||||
779912: c2 04 00 ret 0x4
|
||||
779915: 8b 4d ec mov ecx,DWORD PTR [ebp-0x14]
|
||||
779918: e8 63 fc ea ff call 0x629580
|
||||
77991d: 6a 00 push 0x0
|
||||
77991f: 6a 00 push 0x0
|
||||
779921: e8 96 b6 1a 00 call 0x924fbc
|
||||
779926: cc int3
|
||||
779927: cc int3
|
||||
779928: cc int3
|
||||
779929: cc int3
|
||||
77992a: cc int3
|
||||
77992b: cc int3
|
||||
77992c: cc int3
|
||||
77992d: cc int3
|
||||
77992e: cc int3
|
||||
77992f: cc int3
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
|
||||
/home/alex/sots-re/dumps/sots.exe: file format pei-i386
|
||||
|
||||
Contents of section .text:
|
||||
779a1f 74 108bcfe8 286affff t....(j..
|
||||
|
|
@ -0,0 +1,175 @@
|
|||
|
||||
/home/alex/sots-re/dumps/sots.exe: file format pei-i386
|
||||
|
||||
|
||||
Disassembly of section .text:
|
||||
|
||||
00779850 <.text+0x378850>:
|
||||
779850: 55 push ebp
|
||||
779851: 8b ec mov ebp,esp
|
||||
779853: 6a ff push 0xffffffff
|
||||
779855: 68 10 7b 98 00 push 0x987b10
|
||||
77985a: 64 a1 00 00 00 00 mov eax,fs:0x0
|
||||
779860: 50 push eax
|
||||
779861: 83 ec 08 sub esp,0x8
|
||||
779864: 53 push ebx
|
||||
779865: 56 push esi
|
||||
779866: 57 push edi
|
||||
779867: a1 78 8b af 00 mov eax,ds:0xaf8b78
|
||||
77986c: 33 c5 xor eax,ebp
|
||||
77986e: 50 push eax
|
||||
77986f: 8d 45 f4 lea eax,[ebp-0xc]
|
||||
779872: 64 a3 00 00 00 00 mov fs:0x0,eax
|
||||
779878: 89 65 f0 mov DWORD PTR [ebp-0x10],esp
|
||||
77987b: 8b f1 mov esi,ecx
|
||||
77987d: 89 75 ec mov DWORD PTR [ebp-0x14],esi
|
||||
779880: 8b 5d 08 mov ebx,DWORD PTR [ebp+0x8]
|
||||
779883: 33 c0 xor eax,eax
|
||||
779885: 89 06 mov DWORD PTR [esi],eax
|
||||
779887: 89 46 04 mov DWORD PTR [esi+0x4],eax
|
||||
77988a: 89 46 08 mov DWORD PTR [esi+0x8],eax
|
||||
77988d: 8b 4b 04 mov ecx,DWORD PTR [ebx+0x4]
|
||||
779890: 2b 0b sub ecx,DWORD PTR [ebx]
|
||||
779892: b8 09 cb 3d 8d mov eax,0x8d3dcb09
|
||||
779897: f7 e9 imul ecx
|
||||
779899: 03 d1 add edx,ecx
|
||||
77989b: c1 fa 06 sar edx,0x6
|
||||
77989e: 8b fa mov edi,edx
|
||||
7798a0: b8 00 00 00 00 mov eax,0x0
|
||||
7798a5: c1 ef 1f shr edi,0x1f
|
||||
7798a8: 03 fa add edi,edx
|
||||
7798aa: 89 06 mov DWORD PTR [esi],eax
|
||||
7798ac: 89 46 04 mov DWORD PTR [esi+0x4],eax
|
||||
7798af: 89 46 08 mov DWORD PTR [esi+0x8],eax
|
||||
7798b2: 74 4b je 0x7798ff
|
||||
7798b4: 81 ff 2c f7 34 02 cmp edi,0x234f72c
|
||||
7798ba: 76 0b jbe 0x7798c7
|
||||
7798bc: 68 90 1f 9e 00 push 0x9e1f90
|
||||
7798c1: ff 15 50 d1 9d 00 call DWORD PTR ds:0x9dd150
|
||||
7798c7: 8d 4e 0c lea ecx,[esi+0xc]
|
||||
7798ca: 57 push edi
|
||||
7798cb: e8 70 16 01 00 call 0x78af40
|
||||
7798d0: 6b ff 74 imul edi,edi,0x74
|
||||
7798d3: 8b 55 08 mov edx,DWORD PTR [ebp+0x8]
|
||||
7798d6: 52 push edx
|
||||
7798d7: 8d 56 0c lea edx,[esi+0xc]
|
||||
7798da: 52 push edx
|
||||
7798db: 03 f8 add edi,eax
|
||||
7798dd: 89 06 mov DWORD PTR [esi],eax
|
||||
7798df: 89 46 04 mov DWORD PTR [esi+0x4],eax
|
||||
7798e2: 89 7e 08 mov DWORD PTR [esi+0x8],edi
|
||||
7798e5: 8b 4b 04 mov ecx,DWORD PTR [ebx+0x4]
|
||||
7798e8: 8b 1b mov ebx,DWORD PTR [ebx]
|
||||
7798ea: 50 push eax
|
||||
7798eb: 51 push ecx
|
||||
7798ec: 53 push ebx
|
||||
7798ed: c7 45 fc 00 00 00 00 mov DWORD PTR [ebp-0x4],0x0
|
||||
7798f4: e8 a7 8c ff ff call 0x7725a0
|
||||
7798f9: 83 c4 14 add esp,0x14
|
||||
7798fc: 89 46 04 mov DWORD PTR [esi+0x4],eax
|
||||
7798ff: 8b c6 mov eax,esi
|
||||
779901: 8b 4d f4 mov ecx,DWORD PTR [ebp-0xc]
|
||||
779904: 64 89 0d 00 00 00 00 mov DWORD PTR fs:0x0,ecx
|
||||
77990b: 59 pop ecx
|
||||
77990c: 5f pop edi
|
||||
77990d: 5e pop esi
|
||||
77990e: 5b pop ebx
|
||||
77990f: 8b e5 mov esp,ebp
|
||||
779911: 5d pop ebp
|
||||
779912: c2 04 00 ret 0x4
|
||||
779915: 8b 4d ec mov ecx,DWORD PTR [ebp-0x14]
|
||||
779918: e8 63 fc ea ff call 0x629580
|
||||
77991d: 6a 00 push 0x0
|
||||
77991f: 6a 00 push 0x0
|
||||
779921: e8 96 b6 1a 00 call 0x924fbc
|
||||
779926: cc int3
|
||||
779927: cc int3
|
||||
779928: cc int3
|
||||
779929: cc int3
|
||||
77992a: cc int3
|
||||
77992b: cc int3
|
||||
77992c: cc int3
|
||||
77992d: cc int3
|
||||
77992e: cc int3
|
||||
77992f: cc int3
|
||||
779930: 55 push ebp
|
||||
779931: 8b ec mov ebp,esp
|
||||
779933: 6a ff push 0xffffffff
|
||||
779935: 68 38 06 97 00 push 0x970638
|
||||
77993a: 64 a1 00 00 00 00 mov eax,fs:0x0
|
||||
779940: 50 push eax
|
||||
779941: 83 ec 20 sub esp,0x20
|
||||
779944: a1 78 8b af 00 mov eax,ds:0xaf8b78
|
||||
779949: 33 c5 xor eax,ebp
|
||||
77994b: 89 45 f0 mov DWORD PTR [ebp-0x10],eax
|
||||
77994e: 56 push esi
|
||||
77994f: 50 push eax
|
||||
779950: 8d 45 f4 lea eax,[ebp-0xc]
|
||||
779953: 64 a3 00 00 00 00 mov fs:0x0,eax
|
||||
779959: 8b f1 mov esi,ecx
|
||||
77995b: 8b 86 8c 00 00 00 mov eax,DWORD PTR [esi+0x8c]
|
||||
779961: 85 c0 test eax,eax
|
||||
779963: 75 0c jne 0x779971
|
||||
779965: 68 34 24 a2 00 push 0xa22434
|
||||
77996a: e8 e1 05 14 00 call 0x8b9f50
|
||||
77996f: eb 7e jmp 0x7799ef
|
||||
779971: 50 push eax
|
||||
779972: e8 09 cc c9 ff call 0x416580
|
||||
779977: 83 c4 04 add esp,0x4
|
||||
77997a: 85 c0 test eax,eax
|
||||
77997c: 74 0c je 0x77998a
|
||||
77997e: 68 f8 23 a2 00 push 0xa223f8
|
||||
779983: e8 58 08 14 00 call 0x8ba1e0
|
||||
779988: eb 65 jmp 0x7799ef
|
||||
77998a: e8 d1 58 dc ff call 0x53f260
|
||||
77998f: c7 45 e8 0f 00 00 00 mov DWORD PTR [ebp-0x18],0xf
|
||||
779996: c7 45 e4 00 00 00 00 mov DWORD PTR [ebp-0x1c],0x0
|
||||
77999d: c6 45 d4 00 mov BYTE PTR [ebp-0x2c],0x0
|
||||
7799a1: 8d 4d d4 lea ecx,[ebp-0x2c]
|
||||
7799a4: 51 push ecx
|
||||
7799a5: 50 push eax
|
||||
7799a6: c7 45 fc 00 00 00 00 mov DWORD PTR [ebp-0x4],0x0
|
||||
7799ad: e8 fe 52 dc ff call 0x53ecb0
|
||||
7799b2: 8b 45 d4 mov eax,DWORD PTR [ebp-0x2c]
|
||||
7799b5: 83 c4 08 add esp,0x8
|
||||
7799b8: 83 7d e8 10 cmp DWORD PTR [ebp-0x18],0x10
|
||||
7799bc: 73 03 jae 0x7799c1
|
||||
7799be: 8d 45 d4 lea eax,[ebp-0x2c]
|
||||
7799c1: 8b 96 8c 00 00 00 mov edx,DWORD PTR [esi+0x8c]
|
||||
7799c7: 6a 00 push 0x0
|
||||
7799c9: 56 push esi
|
||||
7799ca: 68 a0 8d 77 00 push 0x778da0
|
||||
7799cf: 68 e0 ea 76 00 push 0x76eae0
|
||||
7799d4: 6a 00 push 0x0
|
||||
7799d6: 50 push eax
|
||||
7799d7: 52 push edx
|
||||
7799d8: e8 f3 d7 c9 ff call 0x4171d0
|
||||
7799dd: 83 c4 1c add esp,0x1c
|
||||
7799e0: 83 7d e8 10 cmp DWORD PTR [ebp-0x18],0x10
|
||||
7799e4: 72 0c jb 0x7799f2
|
||||
7799e6: 8b 45 d4 mov eax,DWORD PTR [ebp-0x2c]
|
||||
7799e9: 50 push eax
|
||||
7799ea: e8 bb b5 1a 00 call 0x924faa
|
||||
7799ef: 83 c4 04 add esp,0x4
|
||||
7799f2: 8b 4d f4 mov ecx,DWORD PTR [ebp-0xc]
|
||||
7799f5: 64 89 0d 00 00 00 00 mov DWORD PTR fs:0x0,ecx
|
||||
7799fc: 59 pop ecx
|
||||
7799fd: 5e pop esi
|
||||
7799fe: 8b 4d f0 mov ecx,DWORD PTR [ebp-0x10]
|
||||
779a01: 33 cd xor ecx,ebp
|
||||
779a03: e8 7a b3 1a 00 call 0x924d82
|
||||
779a08: 8b e5 mov esp,ebp
|
||||
779a0a: 5d pop ebp
|
||||
779a0b: c3 ret
|
||||
779a0c: cc int3
|
||||
779a0d: cc int3
|
||||
779a0e: cc int3
|
||||
779a0f: cc int3
|
||||
779a10: 53 push ebx
|
||||
779a11: 56 push esi
|
||||
779a12: 8b f1 mov esi,ecx
|
||||
779a14: 57 push edi
|
||||
779a15: 8b be 24 01 00 00 mov edi,DWORD PTR [esi+0x124]
|
||||
779a1b: 33 db xor ebx,ebx
|
||||
779a1d: 3b fb cmp edi,ebx
|
||||
779a1f: 74 je 0x779a31
|
||||
|
|
@ -0,0 +1,175 @@
|
|||
|
||||
/home/alex/sots-re/dumps/sots.exe: file format pei-i386
|
||||
|
||||
|
||||
Disassembly of section .text:
|
||||
|
||||
00779850 <.text+0x378850>:
|
||||
779850: 55 push ebp
|
||||
779851: 8b ec mov ebp,esp
|
||||
779853: 6a ff push 0xffffffff
|
||||
779855: 68 10 7b 98 00 push 0x987b10
|
||||
77985a: 64 a1 00 00 00 00 mov eax,fs:0x0
|
||||
779860: 50 push eax
|
||||
779861: 83 ec 08 sub esp,0x8
|
||||
779864: 53 push ebx
|
||||
779865: 56 push esi
|
||||
779866: 57 push edi
|
||||
779867: a1 78 8b af 00 mov eax,ds:0xaf8b78
|
||||
77986c: 33 c5 xor eax,ebp
|
||||
77986e: 50 push eax
|
||||
77986f: 8d 45 f4 lea eax,[ebp-0xc]
|
||||
779872: 64 a3 00 00 00 00 mov fs:0x0,eax
|
||||
779878: 89 65 f0 mov DWORD PTR [ebp-0x10],esp
|
||||
77987b: 8b f1 mov esi,ecx
|
||||
77987d: 89 75 ec mov DWORD PTR [ebp-0x14],esi
|
||||
779880: 8b 5d 08 mov ebx,DWORD PTR [ebp+0x8]
|
||||
779883: 33 c0 xor eax,eax
|
||||
779885: 89 06 mov DWORD PTR [esi],eax
|
||||
779887: 89 46 04 mov DWORD PTR [esi+0x4],eax
|
||||
77988a: 89 46 08 mov DWORD PTR [esi+0x8],eax
|
||||
77988d: 8b 4b 04 mov ecx,DWORD PTR [ebx+0x4]
|
||||
779890: 2b 0b sub ecx,DWORD PTR [ebx]
|
||||
779892: b8 09 cb 3d 8d mov eax,0x8d3dcb09
|
||||
779897: f7 e9 imul ecx
|
||||
779899: 03 d1 add edx,ecx
|
||||
77989b: c1 fa 06 sar edx,0x6
|
||||
77989e: 8b fa mov edi,edx
|
||||
7798a0: b8 00 00 00 00 mov eax,0x0
|
||||
7798a5: c1 ef 1f shr edi,0x1f
|
||||
7798a8: 03 fa add edi,edx
|
||||
7798aa: 89 06 mov DWORD PTR [esi],eax
|
||||
7798ac: 89 46 04 mov DWORD PTR [esi+0x4],eax
|
||||
7798af: 89 46 08 mov DWORD PTR [esi+0x8],eax
|
||||
7798b2: 74 4b je 0x7798ff
|
||||
7798b4: 81 ff 2c f7 34 02 cmp edi,0x234f72c
|
||||
7798ba: 76 0b jbe 0x7798c7
|
||||
7798bc: 68 90 1f 9e 00 push 0x9e1f90
|
||||
7798c1: ff 15 50 d1 9d 00 call DWORD PTR ds:0x9dd150
|
||||
7798c7: 8d 4e 0c lea ecx,[esi+0xc]
|
||||
7798ca: 57 push edi
|
||||
7798cb: e8 70 16 01 00 call 0x78af40
|
||||
7798d0: 6b ff 74 imul edi,edi,0x74
|
||||
7798d3: 8b 55 08 mov edx,DWORD PTR [ebp+0x8]
|
||||
7798d6: 52 push edx
|
||||
7798d7: 8d 56 0c lea edx,[esi+0xc]
|
||||
7798da: 52 push edx
|
||||
7798db: 03 f8 add edi,eax
|
||||
7798dd: 89 06 mov DWORD PTR [esi],eax
|
||||
7798df: 89 46 04 mov DWORD PTR [esi+0x4],eax
|
||||
7798e2: 89 7e 08 mov DWORD PTR [esi+0x8],edi
|
||||
7798e5: 8b 4b 04 mov ecx,DWORD PTR [ebx+0x4]
|
||||
7798e8: 8b 1b mov ebx,DWORD PTR [ebx]
|
||||
7798ea: 50 push eax
|
||||
7798eb: 51 push ecx
|
||||
7798ec: 53 push ebx
|
||||
7798ed: c7 45 fc 00 00 00 00 mov DWORD PTR [ebp-0x4],0x0
|
||||
7798f4: e8 a7 8c ff ff call 0x7725a0
|
||||
7798f9: 83 c4 14 add esp,0x14
|
||||
7798fc: 89 46 04 mov DWORD PTR [esi+0x4],eax
|
||||
7798ff: 8b c6 mov eax,esi
|
||||
779901: 8b 4d f4 mov ecx,DWORD PTR [ebp-0xc]
|
||||
779904: 64 89 0d 00 00 00 00 mov DWORD PTR fs:0x0,ecx
|
||||
77990b: 59 pop ecx
|
||||
77990c: 5f pop edi
|
||||
77990d: 5e pop esi
|
||||
77990e: 5b pop ebx
|
||||
77990f: 8b e5 mov esp,ebp
|
||||
779911: 5d pop ebp
|
||||
779912: c2 04 00 ret 0x4
|
||||
779915: 8b 4d ec mov ecx,DWORD PTR [ebp-0x14]
|
||||
779918: e8 63 fc ea ff call 0x629580
|
||||
77991d: 6a 00 push 0x0
|
||||
77991f: 6a 00 push 0x0
|
||||
779921: e8 96 b6 1a 00 call 0x924fbc
|
||||
779926: cc int3
|
||||
779927: cc int3
|
||||
779928: cc int3
|
||||
779929: cc int3
|
||||
77992a: cc int3
|
||||
77992b: cc int3
|
||||
77992c: cc int3
|
||||
77992d: cc int3
|
||||
77992e: cc int3
|
||||
77992f: cc int3
|
||||
779930: 55 push ebp
|
||||
779931: 8b ec mov ebp,esp
|
||||
779933: 6a ff push 0xffffffff
|
||||
779935: 68 38 06 97 00 push 0x970638
|
||||
77993a: 64 a1 00 00 00 00 mov eax,fs:0x0
|
||||
779940: 50 push eax
|
||||
779941: 83 ec 20 sub esp,0x20
|
||||
779944: a1 78 8b af 00 mov eax,ds:0xaf8b78
|
||||
779949: 33 c5 xor eax,ebp
|
||||
77994b: 89 45 f0 mov DWORD PTR [ebp-0x10],eax
|
||||
77994e: 56 push esi
|
||||
77994f: 50 push eax
|
||||
779950: 8d 45 f4 lea eax,[ebp-0xc]
|
||||
779953: 64 a3 00 00 00 00 mov fs:0x0,eax
|
||||
779959: 8b f1 mov esi,ecx
|
||||
77995b: 8b 86 8c 00 00 00 mov eax,DWORD PTR [esi+0x8c]
|
||||
779961: 85 c0 test eax,eax
|
||||
779963: 75 0c jne 0x779971
|
||||
779965: 68 34 24 a2 00 push 0xa22434
|
||||
77996a: e8 e1 05 14 00 call 0x8b9f50
|
||||
77996f: eb 7e jmp 0x7799ef
|
||||
779971: 50 push eax
|
||||
779972: e8 09 cc c9 ff call 0x416580
|
||||
779977: 83 c4 04 add esp,0x4
|
||||
77997a: 85 c0 test eax,eax
|
||||
77997c: 74 0c je 0x77998a
|
||||
77997e: 68 f8 23 a2 00 push 0xa223f8
|
||||
779983: e8 58 08 14 00 call 0x8ba1e0
|
||||
779988: eb 65 jmp 0x7799ef
|
||||
77998a: e8 d1 58 dc ff call 0x53f260
|
||||
77998f: c7 45 e8 0f 00 00 00 mov DWORD PTR [ebp-0x18],0xf
|
||||
779996: c7 45 e4 00 00 00 00 mov DWORD PTR [ebp-0x1c],0x0
|
||||
77999d: c6 45 d4 00 mov BYTE PTR [ebp-0x2c],0x0
|
||||
7799a1: 8d 4d d4 lea ecx,[ebp-0x2c]
|
||||
7799a4: 51 push ecx
|
||||
7799a5: 50 push eax
|
||||
7799a6: c7 45 fc 00 00 00 00 mov DWORD PTR [ebp-0x4],0x0
|
||||
7799ad: e8 fe 52 dc ff call 0x53ecb0
|
||||
7799b2: 8b 45 d4 mov eax,DWORD PTR [ebp-0x2c]
|
||||
7799b5: 83 c4 08 add esp,0x8
|
||||
7799b8: 83 7d e8 10 cmp DWORD PTR [ebp-0x18],0x10
|
||||
7799bc: 73 03 jae 0x7799c1
|
||||
7799be: 8d 45 d4 lea eax,[ebp-0x2c]
|
||||
7799c1: 8b 96 8c 00 00 00 mov edx,DWORD PTR [esi+0x8c]
|
||||
7799c7: 6a 00 push 0x0
|
||||
7799c9: 56 push esi
|
||||
7799ca: 68 a0 8d 77 00 push 0x778da0
|
||||
7799cf: 68 e0 ea 76 00 push 0x76eae0
|
||||
7799d4: 6a 00 push 0x0
|
||||
7799d6: 50 push eax
|
||||
7799d7: 52 push edx
|
||||
7799d8: e8 f3 d7 c9 ff call 0x4171d0
|
||||
7799dd: 83 c4 1c add esp,0x1c
|
||||
7799e0: 83 7d e8 10 cmp DWORD PTR [ebp-0x18],0x10
|
||||
7799e4: 72 0c jb 0x7799f2
|
||||
7799e6: 8b 45 d4 mov eax,DWORD PTR [ebp-0x2c]
|
||||
7799e9: 50 push eax
|
||||
7799ea: e8 bb b5 1a 00 call 0x924faa
|
||||
7799ef: 83 c4 04 add esp,0x4
|
||||
7799f2: 8b 4d f4 mov ecx,DWORD PTR [ebp-0xc]
|
||||
7799f5: 64 89 0d 00 00 00 00 mov DWORD PTR fs:0x0,ecx
|
||||
7799fc: 59 pop ecx
|
||||
7799fd: 5e pop esi
|
||||
7799fe: 8b 4d f0 mov ecx,DWORD PTR [ebp-0x10]
|
||||
779a01: 33 cd xor ecx,ebp
|
||||
779a03: e8 7a b3 1a 00 call 0x924d82
|
||||
779a08: 8b e5 mov esp,ebp
|
||||
779a0a: 5d pop ebp
|
||||
779a0b: c3 ret
|
||||
779a0c: cc int3
|
||||
779a0d: cc int3
|
||||
779a0e: cc int3
|
||||
779a0f: cc int3
|
||||
779a10: 53 push ebx
|
||||
779a11: 56 push esi
|
||||
779a12: 8b f1 mov esi,ecx
|
||||
779a14: 57 push edi
|
||||
779a15: 8b be 24 01 00 00 mov edi,DWORD PTR [esi+0x124]
|
||||
779a1b: 33 db xor ebx,ebx
|
||||
779a1d: 3b fb cmp edi,ebx
|
||||
779a1f: 74 10 je 0x779a31
|
||||
|
|
@ -0,0 +1,176 @@
|
|||
|
||||
/home/alex/sots-re/dumps/sots.exe: file format pei-i386
|
||||
|
||||
|
||||
Disassembly of section .text:
|
||||
|
||||
00779850 <.text+0x378850>:
|
||||
779850: 55 push ebp
|
||||
779851: 8b ec mov ebp,esp
|
||||
779853: 6a ff push 0xffffffff
|
||||
779855: 68 10 7b 98 00 push 0x987b10
|
||||
77985a: 64 a1 00 00 00 00 mov eax,fs:0x0
|
||||
779860: 50 push eax
|
||||
779861: 83 ec 08 sub esp,0x8
|
||||
779864: 53 push ebx
|
||||
779865: 56 push esi
|
||||
779866: 57 push edi
|
||||
779867: a1 78 8b af 00 mov eax,ds:0xaf8b78
|
||||
77986c: 33 c5 xor eax,ebp
|
||||
77986e: 50 push eax
|
||||
77986f: 8d 45 f4 lea eax,[ebp-0xc]
|
||||
779872: 64 a3 00 00 00 00 mov fs:0x0,eax
|
||||
779878: 89 65 f0 mov DWORD PTR [ebp-0x10],esp
|
||||
77987b: 8b f1 mov esi,ecx
|
||||
77987d: 89 75 ec mov DWORD PTR [ebp-0x14],esi
|
||||
779880: 8b 5d 08 mov ebx,DWORD PTR [ebp+0x8]
|
||||
779883: 33 c0 xor eax,eax
|
||||
779885: 89 06 mov DWORD PTR [esi],eax
|
||||
779887: 89 46 04 mov DWORD PTR [esi+0x4],eax
|
||||
77988a: 89 46 08 mov DWORD PTR [esi+0x8],eax
|
||||
77988d: 8b 4b 04 mov ecx,DWORD PTR [ebx+0x4]
|
||||
779890: 2b 0b sub ecx,DWORD PTR [ebx]
|
||||
779892: b8 09 cb 3d 8d mov eax,0x8d3dcb09
|
||||
779897: f7 e9 imul ecx
|
||||
779899: 03 d1 add edx,ecx
|
||||
77989b: c1 fa 06 sar edx,0x6
|
||||
77989e: 8b fa mov edi,edx
|
||||
7798a0: b8 00 00 00 00 mov eax,0x0
|
||||
7798a5: c1 ef 1f shr edi,0x1f
|
||||
7798a8: 03 fa add edi,edx
|
||||
7798aa: 89 06 mov DWORD PTR [esi],eax
|
||||
7798ac: 89 46 04 mov DWORD PTR [esi+0x4],eax
|
||||
7798af: 89 46 08 mov DWORD PTR [esi+0x8],eax
|
||||
7798b2: 74 4b je 0x7798ff
|
||||
7798b4: 81 ff 2c f7 34 02 cmp edi,0x234f72c
|
||||
7798ba: 76 0b jbe 0x7798c7
|
||||
7798bc: 68 90 1f 9e 00 push 0x9e1f90
|
||||
7798c1: ff 15 50 d1 9d 00 call DWORD PTR ds:0x9dd150
|
||||
7798c7: 8d 4e 0c lea ecx,[esi+0xc]
|
||||
7798ca: 57 push edi
|
||||
7798cb: e8 70 16 01 00 call 0x78af40
|
||||
7798d0: 6b ff 74 imul edi,edi,0x74
|
||||
7798d3: 8b 55 08 mov edx,DWORD PTR [ebp+0x8]
|
||||
7798d6: 52 push edx
|
||||
7798d7: 8d 56 0c lea edx,[esi+0xc]
|
||||
7798da: 52 push edx
|
||||
7798db: 03 f8 add edi,eax
|
||||
7798dd: 89 06 mov DWORD PTR [esi],eax
|
||||
7798df: 89 46 04 mov DWORD PTR [esi+0x4],eax
|
||||
7798e2: 89 7e 08 mov DWORD PTR [esi+0x8],edi
|
||||
7798e5: 8b 4b 04 mov ecx,DWORD PTR [ebx+0x4]
|
||||
7798e8: 8b 1b mov ebx,DWORD PTR [ebx]
|
||||
7798ea: 50 push eax
|
||||
7798eb: 51 push ecx
|
||||
7798ec: 53 push ebx
|
||||
7798ed: c7 45 fc 00 00 00 00 mov DWORD PTR [ebp-0x4],0x0
|
||||
7798f4: e8 a7 8c ff ff call 0x7725a0
|
||||
7798f9: 83 c4 14 add esp,0x14
|
||||
7798fc: 89 46 04 mov DWORD PTR [esi+0x4],eax
|
||||
7798ff: 8b c6 mov eax,esi
|
||||
779901: 8b 4d f4 mov ecx,DWORD PTR [ebp-0xc]
|
||||
779904: 64 89 0d 00 00 00 00 mov DWORD PTR fs:0x0,ecx
|
||||
77990b: 59 pop ecx
|
||||
77990c: 5f pop edi
|
||||
77990d: 5e pop esi
|
||||
77990e: 5b pop ebx
|
||||
77990f: 8b e5 mov esp,ebp
|
||||
779911: 5d pop ebp
|
||||
779912: c2 04 00 ret 0x4
|
||||
779915: 8b 4d ec mov ecx,DWORD PTR [ebp-0x14]
|
||||
779918: e8 63 fc ea ff call 0x629580
|
||||
77991d: 6a 00 push 0x0
|
||||
77991f: 6a 00 push 0x0
|
||||
779921: e8 96 b6 1a 00 call 0x924fbc
|
||||
779926: cc int3
|
||||
779927: cc int3
|
||||
779928: cc int3
|
||||
779929: cc int3
|
||||
77992a: cc int3
|
||||
77992b: cc int3
|
||||
77992c: cc int3
|
||||
77992d: cc int3
|
||||
77992e: cc int3
|
||||
77992f: cc int3
|
||||
779930: 55 push ebp
|
||||
779931: 8b ec mov ebp,esp
|
||||
779933: 6a ff push 0xffffffff
|
||||
779935: 68 38 06 97 00 push 0x970638
|
||||
77993a: 64 a1 00 00 00 00 mov eax,fs:0x0
|
||||
779940: 50 push eax
|
||||
779941: 83 ec 20 sub esp,0x20
|
||||
779944: a1 78 8b af 00 mov eax,ds:0xaf8b78
|
||||
779949: 33 c5 xor eax,ebp
|
||||
77994b: 89 45 f0 mov DWORD PTR [ebp-0x10],eax
|
||||
77994e: 56 push esi
|
||||
77994f: 50 push eax
|
||||
779950: 8d 45 f4 lea eax,[ebp-0xc]
|
||||
779953: 64 a3 00 00 00 00 mov fs:0x0,eax
|
||||
779959: 8b f1 mov esi,ecx
|
||||
77995b: 8b 86 8c 00 00 00 mov eax,DWORD PTR [esi+0x8c]
|
||||
779961: 85 c0 test eax,eax
|
||||
779963: 75 0c jne 0x779971
|
||||
779965: 68 34 24 a2 00 push 0xa22434
|
||||
77996a: e8 e1 05 14 00 call 0x8b9f50
|
||||
77996f: eb 7e jmp 0x7799ef
|
||||
779971: 50 push eax
|
||||
779972: e8 09 cc c9 ff call 0x416580
|
||||
779977: 83 c4 04 add esp,0x4
|
||||
77997a: 85 c0 test eax,eax
|
||||
77997c: 74 0c je 0x77998a
|
||||
77997e: 68 f8 23 a2 00 push 0xa223f8
|
||||
779983: e8 58 08 14 00 call 0x8ba1e0
|
||||
779988: eb 65 jmp 0x7799ef
|
||||
77998a: e8 d1 58 dc ff call 0x53f260
|
||||
77998f: c7 45 e8 0f 00 00 00 mov DWORD PTR [ebp-0x18],0xf
|
||||
779996: c7 45 e4 00 00 00 00 mov DWORD PTR [ebp-0x1c],0x0
|
||||
77999d: c6 45 d4 00 mov BYTE PTR [ebp-0x2c],0x0
|
||||
7799a1: 8d 4d d4 lea ecx,[ebp-0x2c]
|
||||
7799a4: 51 push ecx
|
||||
7799a5: 50 push eax
|
||||
7799a6: c7 45 fc 00 00 00 00 mov DWORD PTR [ebp-0x4],0x0
|
||||
7799ad: e8 fe 52 dc ff call 0x53ecb0
|
||||
7799b2: 8b 45 d4 mov eax,DWORD PTR [ebp-0x2c]
|
||||
7799b5: 83 c4 08 add esp,0x8
|
||||
7799b8: 83 7d e8 10 cmp DWORD PTR [ebp-0x18],0x10
|
||||
7799bc: 73 03 jae 0x7799c1
|
||||
7799be: 8d 45 d4 lea eax,[ebp-0x2c]
|
||||
7799c1: 8b 96 8c 00 00 00 mov edx,DWORD PTR [esi+0x8c]
|
||||
7799c7: 6a 00 push 0x0
|
||||
7799c9: 56 push esi
|
||||
7799ca: 68 a0 8d 77 00 push 0x778da0
|
||||
7799cf: 68 e0 ea 76 00 push 0x76eae0
|
||||
7799d4: 6a 00 push 0x0
|
||||
7799d6: 50 push eax
|
||||
7799d7: 52 push edx
|
||||
7799d8: e8 f3 d7 c9 ff call 0x4171d0
|
||||
7799dd: 83 c4 1c add esp,0x1c
|
||||
7799e0: 83 7d e8 10 cmp DWORD PTR [ebp-0x18],0x10
|
||||
7799e4: 72 0c jb 0x7799f2
|
||||
7799e6: 8b 45 d4 mov eax,DWORD PTR [ebp-0x2c]
|
||||
7799e9: 50 push eax
|
||||
7799ea: e8 bb b5 1a 00 call 0x924faa
|
||||
7799ef: 83 c4 04 add esp,0x4
|
||||
7799f2: 8b 4d f4 mov ecx,DWORD PTR [ebp-0xc]
|
||||
7799f5: 64 89 0d 00 00 00 00 mov DWORD PTR fs:0x0,ecx
|
||||
7799fc: 59 pop ecx
|
||||
7799fd: 5e pop esi
|
||||
7799fe: 8b 4d f0 mov ecx,DWORD PTR [ebp-0x10]
|
||||
779a01: 33 cd xor ecx,ebp
|
||||
779a03: e8 7a b3 1a 00 call 0x924d82
|
||||
779a08: 8b e5 mov esp,ebp
|
||||
779a0a: 5d pop ebp
|
||||
779a0b: c3 ret
|
||||
779a0c: cc int3
|
||||
779a0d: cc int3
|
||||
779a0e: cc int3
|
||||
779a0f: cc int3
|
||||
779a10: 53 push ebx
|
||||
779a11: 56 push esi
|
||||
779a12: 8b f1 mov esi,ecx
|
||||
779a14: 57 push edi
|
||||
779a15: 8b be 24 01 00 00 mov edi,DWORD PTR [esi+0x124]
|
||||
779a1b: 33 db xor ebx,ebx
|
||||
779a1d: 3b fb cmp edi,ebx
|
||||
779a1f: 74 10 je 0x779a31
|
||||
779a21: 8b cf mov ecx,edi
|
||||
|
|
@ -0,0 +1,177 @@
|
|||
|
||||
/home/alex/sots-re/dumps/sots.exe: file format pei-i386
|
||||
|
||||
|
||||
Disassembly of section .text:
|
||||
|
||||
00779850 <.text+0x378850>:
|
||||
779850: 55 push ebp
|
||||
779851: 8b ec mov ebp,esp
|
||||
779853: 6a ff push 0xffffffff
|
||||
779855: 68 10 7b 98 00 push 0x987b10
|
||||
77985a: 64 a1 00 00 00 00 mov eax,fs:0x0
|
||||
779860: 50 push eax
|
||||
779861: 83 ec 08 sub esp,0x8
|
||||
779864: 53 push ebx
|
||||
779865: 56 push esi
|
||||
779866: 57 push edi
|
||||
779867: a1 78 8b af 00 mov eax,ds:0xaf8b78
|
||||
77986c: 33 c5 xor eax,ebp
|
||||
77986e: 50 push eax
|
||||
77986f: 8d 45 f4 lea eax,[ebp-0xc]
|
||||
779872: 64 a3 00 00 00 00 mov fs:0x0,eax
|
||||
779878: 89 65 f0 mov DWORD PTR [ebp-0x10],esp
|
||||
77987b: 8b f1 mov esi,ecx
|
||||
77987d: 89 75 ec mov DWORD PTR [ebp-0x14],esi
|
||||
779880: 8b 5d 08 mov ebx,DWORD PTR [ebp+0x8]
|
||||
779883: 33 c0 xor eax,eax
|
||||
779885: 89 06 mov DWORD PTR [esi],eax
|
||||
779887: 89 46 04 mov DWORD PTR [esi+0x4],eax
|
||||
77988a: 89 46 08 mov DWORD PTR [esi+0x8],eax
|
||||
77988d: 8b 4b 04 mov ecx,DWORD PTR [ebx+0x4]
|
||||
779890: 2b 0b sub ecx,DWORD PTR [ebx]
|
||||
779892: b8 09 cb 3d 8d mov eax,0x8d3dcb09
|
||||
779897: f7 e9 imul ecx
|
||||
779899: 03 d1 add edx,ecx
|
||||
77989b: c1 fa 06 sar edx,0x6
|
||||
77989e: 8b fa mov edi,edx
|
||||
7798a0: b8 00 00 00 00 mov eax,0x0
|
||||
7798a5: c1 ef 1f shr edi,0x1f
|
||||
7798a8: 03 fa add edi,edx
|
||||
7798aa: 89 06 mov DWORD PTR [esi],eax
|
||||
7798ac: 89 46 04 mov DWORD PTR [esi+0x4],eax
|
||||
7798af: 89 46 08 mov DWORD PTR [esi+0x8],eax
|
||||
7798b2: 74 4b je 0x7798ff
|
||||
7798b4: 81 ff 2c f7 34 02 cmp edi,0x234f72c
|
||||
7798ba: 76 0b jbe 0x7798c7
|
||||
7798bc: 68 90 1f 9e 00 push 0x9e1f90
|
||||
7798c1: ff 15 50 d1 9d 00 call DWORD PTR ds:0x9dd150
|
||||
7798c7: 8d 4e 0c lea ecx,[esi+0xc]
|
||||
7798ca: 57 push edi
|
||||
7798cb: e8 70 16 01 00 call 0x78af40
|
||||
7798d0: 6b ff 74 imul edi,edi,0x74
|
||||
7798d3: 8b 55 08 mov edx,DWORD PTR [ebp+0x8]
|
||||
7798d6: 52 push edx
|
||||
7798d7: 8d 56 0c lea edx,[esi+0xc]
|
||||
7798da: 52 push edx
|
||||
7798db: 03 f8 add edi,eax
|
||||
7798dd: 89 06 mov DWORD PTR [esi],eax
|
||||
7798df: 89 46 04 mov DWORD PTR [esi+0x4],eax
|
||||
7798e2: 89 7e 08 mov DWORD PTR [esi+0x8],edi
|
||||
7798e5: 8b 4b 04 mov ecx,DWORD PTR [ebx+0x4]
|
||||
7798e8: 8b 1b mov ebx,DWORD PTR [ebx]
|
||||
7798ea: 50 push eax
|
||||
7798eb: 51 push ecx
|
||||
7798ec: 53 push ebx
|
||||
7798ed: c7 45 fc 00 00 00 00 mov DWORD PTR [ebp-0x4],0x0
|
||||
7798f4: e8 a7 8c ff ff call 0x7725a0
|
||||
7798f9: 83 c4 14 add esp,0x14
|
||||
7798fc: 89 46 04 mov DWORD PTR [esi+0x4],eax
|
||||
7798ff: 8b c6 mov eax,esi
|
||||
779901: 8b 4d f4 mov ecx,DWORD PTR [ebp-0xc]
|
||||
779904: 64 89 0d 00 00 00 00 mov DWORD PTR fs:0x0,ecx
|
||||
77990b: 59 pop ecx
|
||||
77990c: 5f pop edi
|
||||
77990d: 5e pop esi
|
||||
77990e: 5b pop ebx
|
||||
77990f: 8b e5 mov esp,ebp
|
||||
779911: 5d pop ebp
|
||||
779912: c2 04 00 ret 0x4
|
||||
779915: 8b 4d ec mov ecx,DWORD PTR [ebp-0x14]
|
||||
779918: e8 63 fc ea ff call 0x629580
|
||||
77991d: 6a 00 push 0x0
|
||||
77991f: 6a 00 push 0x0
|
||||
779921: e8 96 b6 1a 00 call 0x924fbc
|
||||
779926: cc int3
|
||||
779927: cc int3
|
||||
779928: cc int3
|
||||
779929: cc int3
|
||||
77992a: cc int3
|
||||
77992b: cc int3
|
||||
77992c: cc int3
|
||||
77992d: cc int3
|
||||
77992e: cc int3
|
||||
77992f: cc int3
|
||||
779930: 55 push ebp
|
||||
779931: 8b ec mov ebp,esp
|
||||
779933: 6a ff push 0xffffffff
|
||||
779935: 68 38 06 97 00 push 0x970638
|
||||
77993a: 64 a1 00 00 00 00 mov eax,fs:0x0
|
||||
779940: 50 push eax
|
||||
779941: 83 ec 20 sub esp,0x20
|
||||
779944: a1 78 8b af 00 mov eax,ds:0xaf8b78
|
||||
779949: 33 c5 xor eax,ebp
|
||||
77994b: 89 45 f0 mov DWORD PTR [ebp-0x10],eax
|
||||
77994e: 56 push esi
|
||||
77994f: 50 push eax
|
||||
779950: 8d 45 f4 lea eax,[ebp-0xc]
|
||||
779953: 64 a3 00 00 00 00 mov fs:0x0,eax
|
||||
779959: 8b f1 mov esi,ecx
|
||||
77995b: 8b 86 8c 00 00 00 mov eax,DWORD PTR [esi+0x8c]
|
||||
779961: 85 c0 test eax,eax
|
||||
779963: 75 0c jne 0x779971
|
||||
779965: 68 34 24 a2 00 push 0xa22434
|
||||
77996a: e8 e1 05 14 00 call 0x8b9f50
|
||||
77996f: eb 7e jmp 0x7799ef
|
||||
779971: 50 push eax
|
||||
779972: e8 09 cc c9 ff call 0x416580
|
||||
779977: 83 c4 04 add esp,0x4
|
||||
77997a: 85 c0 test eax,eax
|
||||
77997c: 74 0c je 0x77998a
|
||||
77997e: 68 f8 23 a2 00 push 0xa223f8
|
||||
779983: e8 58 08 14 00 call 0x8ba1e0
|
||||
779988: eb 65 jmp 0x7799ef
|
||||
77998a: e8 d1 58 dc ff call 0x53f260
|
||||
77998f: c7 45 e8 0f 00 00 00 mov DWORD PTR [ebp-0x18],0xf
|
||||
779996: c7 45 e4 00 00 00 00 mov DWORD PTR [ebp-0x1c],0x0
|
||||
77999d: c6 45 d4 00 mov BYTE PTR [ebp-0x2c],0x0
|
||||
7799a1: 8d 4d d4 lea ecx,[ebp-0x2c]
|
||||
7799a4: 51 push ecx
|
||||
7799a5: 50 push eax
|
||||
7799a6: c7 45 fc 00 00 00 00 mov DWORD PTR [ebp-0x4],0x0
|
||||
7799ad: e8 fe 52 dc ff call 0x53ecb0
|
||||
7799b2: 8b 45 d4 mov eax,DWORD PTR [ebp-0x2c]
|
||||
7799b5: 83 c4 08 add esp,0x8
|
||||
7799b8: 83 7d e8 10 cmp DWORD PTR [ebp-0x18],0x10
|
||||
7799bc: 73 03 jae 0x7799c1
|
||||
7799be: 8d 45 d4 lea eax,[ebp-0x2c]
|
||||
7799c1: 8b 96 8c 00 00 00 mov edx,DWORD PTR [esi+0x8c]
|
||||
7799c7: 6a 00 push 0x0
|
||||
7799c9: 56 push esi
|
||||
7799ca: 68 a0 8d 77 00 push 0x778da0
|
||||
7799cf: 68 e0 ea 76 00 push 0x76eae0
|
||||
7799d4: 6a 00 push 0x0
|
||||
7799d6: 50 push eax
|
||||
7799d7: 52 push edx
|
||||
7799d8: e8 f3 d7 c9 ff call 0x4171d0
|
||||
7799dd: 83 c4 1c add esp,0x1c
|
||||
7799e0: 83 7d e8 10 cmp DWORD PTR [ebp-0x18],0x10
|
||||
7799e4: 72 0c jb 0x7799f2
|
||||
7799e6: 8b 45 d4 mov eax,DWORD PTR [ebp-0x2c]
|
||||
7799e9: 50 push eax
|
||||
7799ea: e8 bb b5 1a 00 call 0x924faa
|
||||
7799ef: 83 c4 04 add esp,0x4
|
||||
7799f2: 8b 4d f4 mov ecx,DWORD PTR [ebp-0xc]
|
||||
7799f5: 64 89 0d 00 00 00 00 mov DWORD PTR fs:0x0,ecx
|
||||
7799fc: 59 pop ecx
|
||||
7799fd: 5e pop esi
|
||||
7799fe: 8b 4d f0 mov ecx,DWORD PTR [ebp-0x10]
|
||||
779a01: 33 cd xor ecx,ebp
|
||||
779a03: e8 7a b3 1a 00 call 0x924d82
|
||||
779a08: 8b e5 mov esp,ebp
|
||||
779a0a: 5d pop ebp
|
||||
779a0b: c3 ret
|
||||
779a0c: cc int3
|
||||
779a0d: cc int3
|
||||
779a0e: cc int3
|
||||
779a0f: cc int3
|
||||
779a10: 53 push ebx
|
||||
779a11: 56 push esi
|
||||
779a12: 8b f1 mov esi,ecx
|
||||
779a14: 57 push edi
|
||||
779a15: 8b be 24 01 00 00 mov edi,DWORD PTR [esi+0x124]
|
||||
779a1b: 33 db xor ebx,ebx
|
||||
779a1d: 3b fb cmp edi,ebx
|
||||
779a1f: 74 10 je 0x779a31
|
||||
779a21: 8b cf mov ecx,edi
|
||||
779a23: e8 28 6a ff ff call 0x770450
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
|
||||
/home/alex/sots-re/dumps/sots.exe: file format pei-i386
|
||||
|
||||
|
||||
Disassembly of section .text:
|
||||
|
||||
00629580 <.text+0x228580>:
|
||||
629580: 57 push edi
|
||||
629581: 8b f9 mov edi,ecx
|
||||
629583: 83 3f 00 cmp DWORD PTR [edi],0x0
|
||||
629586: 74 36 je 0x6295be
|
||||
629588: 53 push ebx
|
||||
629589: 56 push esi
|
||||
62958a: ff 15 2c d1 9d 00 call DWORD PTR ds:0x9dd12c
|
||||
629590: 8b 5f 04 mov ebx,DWORD PTR [edi+0x4]
|
||||
629593: 8b 37 mov esi,DWORD PTR [edi]
|
||||
629595: 3b f3 cmp esi,ebx
|
||||
629597: 74 18 je 0x6295b1
|
||||
629599: 8d a4 24 00 00 00 00 lea esp,[esp+0x0]
|
||||
6295a0: 8b 06 mov eax,DWORD PTR [esi]
|
||||
6295a2: 8b 10 mov edx,DWORD PTR [eax]
|
||||
6295a4: 6a 00 push 0x0
|
||||
6295a6: 8b ce mov ecx,esi
|
||||
6295a8: ff d2 call edx
|
||||
6295aa: 83 c6 74 add esi,0x74
|
||||
6295ad: 3b f3 cmp esi,ebx
|
||||
6295af: 75 ef jne 0x6295a0
|
||||
6295b1: 8b 07 mov eax,DWORD PTR [edi]
|
||||
6295b3: 50 push eax
|
||||
6295b4: e8 f1 b9 2f 00 call 0x924faa
|
||||
6295b9: 83 c4 04 add esp,0x4
|
||||
6295bc: 5e pop esi
|
||||
6295bd: 5b pop ebx
|
||||
6295be: 33 c0 xor eax,eax
|
||||
6295c0: 89 07 mov DWORD PTR [edi],eax
|
||||
6295c2: 89 47 04 mov DWORD PTR [edi+0x4],eax
|
||||
6295c5: 89 47 08 mov DWORD PTR [edi+0x8],eax
|
||||
6295c8: 5f pop edi
|
||||
6295c9: c3 ret
|
||||
|
|
@ -0,0 +1,43 @@
|
|||
|
||||
/home/alex/sots-re/dumps/sots.exe: file format pei-i386
|
||||
|
||||
|
||||
Disassembly of section .text:
|
||||
|
||||
00629580 <.text+0x228580>:
|
||||
629580: 57 push edi
|
||||
629581: 8b f9 mov edi,ecx
|
||||
629583: 83 3f 00 cmp DWORD PTR [edi],0x0
|
||||
629586: 74 36 je 0x6295be
|
||||
629588: 53 push ebx
|
||||
629589: 56 push esi
|
||||
62958a: ff 15 2c d1 9d 00 call DWORD PTR ds:0x9dd12c
|
||||
629590: 8b 5f 04 mov ebx,DWORD PTR [edi+0x4]
|
||||
629593: 8b 37 mov esi,DWORD PTR [edi]
|
||||
629595: 3b f3 cmp esi,ebx
|
||||
629597: 74 18 je 0x6295b1
|
||||
629599: 8d a4 24 00 00 00 00 lea esp,[esp+0x0]
|
||||
6295a0: 8b 06 mov eax,DWORD PTR [esi]
|
||||
6295a2: 8b 10 mov edx,DWORD PTR [eax]
|
||||
6295a4: 6a 00 push 0x0
|
||||
6295a6: 8b ce mov ecx,esi
|
||||
6295a8: ff d2 call edx
|
||||
6295aa: 83 c6 74 add esi,0x74
|
||||
6295ad: 3b f3 cmp esi,ebx
|
||||
6295af: 75 ef jne 0x6295a0
|
||||
6295b1: 8b 07 mov eax,DWORD PTR [edi]
|
||||
6295b3: 50 push eax
|
||||
6295b4: e8 f1 b9 2f 00 call 0x924faa
|
||||
6295b9: 83 c4 04 add esp,0x4
|
||||
6295bc: 5e pop esi
|
||||
6295bd: 5b pop ebx
|
||||
6295be: 33 c0 xor eax,eax
|
||||
6295c0: 89 07 mov DWORD PTR [edi],eax
|
||||
6295c2: 89 47 04 mov DWORD PTR [edi+0x4],eax
|
||||
6295c5: 89 47 08 mov DWORD PTR [edi+0x8],eax
|
||||
6295c8: 5f pop edi
|
||||
6295c9: c3 ret
|
||||
6295ca: cc int3
|
||||
6295cb: cc int3
|
||||
6295cc: cc int3
|
||||
6295cd: cc int3
|
||||
|
|
@ -0,0 +1,80 @@
|
|||
# Fresh TurnEvents boundary capture
|
||||
|
||||
Session `run-9daf5c3b75547271d5c3b4ed`; analyst static measurement only. This package implements
|
||||
decisions `d-fd5aff1eaf78a8c15d96723c` and `d-0bb927e63b915c87a58d4257`. It does not execute the
|
||||
game, allocations, constructors, destructors, exception paths, event posting, or RNG.
|
||||
|
||||
## Provenance and positive execution
|
||||
|
||||
`capture.py` requires the actual session and matching output directory and fails if the directory
|
||||
contains anything except the recipe. Before capture it positively rejected missing and stale session
|
||||
IDs, a stale output path, and a simulated reused location. The recipe is intentionally not reusable
|
||||
unchanged by a later campaign session.
|
||||
|
||||
The manifest records 12 subprocess executions. Every command returned zero, emitted nonempty
|
||||
stdout, and emitted empty stderr. Before and after source bindings are identical: engine
|
||||
`ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd`, RE
|
||||
`6696fd5201e144843617cbf6d78b41b5287ad5dcc9fa1e8aaa861d52b64e72e8`. Fresh input identities are:
|
||||
|
||||
* owner-supplied `dumps/sots.exe`: 7,898,624 bytes, SHA-256
|
||||
`970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841`;
|
||||
* `/usr/bin/objdump`: 373,888 bytes, GNU Binutils 2.38, SHA-256
|
||||
`1eaaef2e7f57c4c7f69115c495e2466f5a8c8e5f3bc42221d092382f30f9d4cd`.
|
||||
|
||||
## Measured observations
|
||||
|
||||
1. The known-bad stop `0x00779a20` returns zero but displays only byte `74` for the instruction at
|
||||
`0x00779a1f`. It is an explicit negative control, not a passing stream.
|
||||
2. Stop `0x00779a21` displays the complete `74 10` conditional jump; stop `0x00779a23` additionally
|
||||
displays complete `8b cf`; stop `0x00779a28` additionally displays complete
|
||||
`e8 28 6a ff ff`. Raw section bytes over `0x00779a1f..0x00779a28` are
|
||||
`74 10 8b cf e8 28 6a ff ff`. The resolver's three boundary predictions therefore held.
|
||||
3. The separately bounded `0x00779850..0x00779930` authority capture includes destination nested-
|
||||
vector pointer initialization, empty/nonempty branching, allocation/range-copy calls, normal
|
||||
`ret 4` at `0x00779912`, unwind cleanup call at `0x00779918`, deallocation call at
|
||||
`0x00779921`, and padding through `0x0077992f`. It excludes the later routine at `0x00779a10`.
|
||||
4. Get/create `0x00885380..0x0088544a`, outer append `0x00884cb0..0x00884d8f`, and nested
|
||||
destruction `0x00629580..0x006295ca` end respectively in complete `ret 4`, `ret 4`, and `ret`
|
||||
instructions. Their wider controls preserve those rows and add padding or a subsequent prologue.
|
||||
|
||||
## Bounded static interpretation
|
||||
|
||||
For valid input containers and normally returning callees, the instruction facts support this order:
|
||||
|
||||
* get/create scans all existing `0x18` TurnEvents elements and retains the last matching `EvTurn`;
|
||||
this existing-match path returns without element construction;
|
||||
* a miss initializes a temporary vptr and three empty nested-vector pointers, but not temporary
|
||||
`EvTurn`; outer append copies source `+4`, then deep-copies the nested vector, then advances outer
|
||||
`_Mylast` by `0x18`;
|
||||
* nested copy first nulls all destination pointers. Empty source returns without allocation;
|
||||
nonempty source enters allocation and `0x74`-stride PlayerEvent range-copy construction;
|
||||
* get/create cleans the temporary nested vector before writing requested turn into the stored final
|
||||
element and returning that element;
|
||||
* nested destruction skips element/free work for null storage. Otherwise it invokes every
|
||||
PlayerEvent virtual destructor, frees the nested block via `0x00924faa`, and then zeros all three
|
||||
pointers.
|
||||
|
||||
The uninitialized transient scalar is not a random draw and should not be reproduced as intentional
|
||||
undefined behavior. No event record, event ID, text, outer EventStorage next-ID, or RNG state is
|
||||
written by the bounded helper itself. Static decoding does not demonstrate live allocator-family
|
||||
safety, exception cleanup outcomes, or observable transient behavior.
|
||||
|
||||
## Original dependencies, missing runtime inputs, and verifier falsifiers
|
||||
|
||||
Original-assisted use depends on the binary's coherent MSVCR100 family: allocation thunk
|
||||
`0x00924fb6`, deletion thunk `0x00924faa`, nested allocation chain
|
||||
`0x00779850 -> 0x0078af40`, PlayerEvent range/copy chain
|
||||
`0x007725a0 -> 0x007693f0`, and virtual PlayerEvent destruction. A standalone implementation must
|
||||
replace the entire allocation/copy/destruction family; mixing raw headers with original-owned
|
||||
storage is not independent replacement.
|
||||
|
||||
Missing live inputs are pre/post spare- and full-capacity outer vectors, empty and nonempty nested
|
||||
vectors with owned short/long strings, distinct stack sentinels, forced allocation failure/throw,
|
||||
and observers capable of detecting the transient source word. No such fixture was available or run.
|
||||
|
||||
An independent verifier should use its own real session and fail-if-exists directory, freshly hash
|
||||
source/tool/input, reproduce all authority windows, and hold out at least one complete terminal
|
||||
boundary. It should require the `0x00779a20` control to fail completeness despite exit zero, compare
|
||||
raw bytes against decoded lengths, and check distinct existing-last-match, miss/spare, miss/full,
|
||||
empty/nonempty nested, and unwind states. Archived event records remain a separate validation input;
|
||||
this package does not prove their field semantics or promote either contract criterion.
|
||||
|
|
@ -0,0 +1,85 @@
|
|||
|
||||
/home/alex/sots-re/dumps/sots.exe: file format pei-i386
|
||||
|
||||
|
||||
Disassembly of section .text:
|
||||
|
||||
00884cb0 <.text+0x483cb0>:
|
||||
884cb0: 55 push ebp
|
||||
884cb1: 8b ec mov ebp,esp
|
||||
884cb3: 6a ff push 0xffffffff
|
||||
884cb5: 68 72 0b 98 00 push 0x980b72
|
||||
884cba: 64 a1 00 00 00 00 mov eax,fs:0x0
|
||||
884cc0: 50 push eax
|
||||
884cc1: 51 push ecx
|
||||
884cc2: 56 push esi
|
||||
884cc3: 57 push edi
|
||||
884cc4: a1 78 8b af 00 mov eax,ds:0xaf8b78
|
||||
884cc9: 33 c5 xor eax,ebp
|
||||
884ccb: 50 push eax
|
||||
884ccc: 8d 45 f4 lea eax,[ebp-0xc]
|
||||
884ccf: 64 a3 00 00 00 00 mov fs:0x0,eax
|
||||
884cd5: 8b f9 mov edi,ecx
|
||||
884cd7: 8b 4f 04 mov ecx,DWORD PTR [edi+0x4]
|
||||
884cda: 8b 75 08 mov esi,DWORD PTR [ebp+0x8]
|
||||
884cdd: 3b f1 cmp esi,ecx
|
||||
884cdf: 73 59 jae 0x884d3a
|
||||
884ce1: 8b 07 mov eax,DWORD PTR [edi]
|
||||
884ce3: 3b c6 cmp eax,esi
|
||||
884ce5: 77 53 ja 0x884d3a
|
||||
884ce7: 2b f0 sub esi,eax
|
||||
884ce9: b8 ab aa aa 2a mov eax,0x2aaaaaab
|
||||
884cee: f7 ee imul esi
|
||||
884cf0: c1 fa 02 sar edx,0x2
|
||||
884cf3: 8b f2 mov esi,edx
|
||||
884cf5: c1 ee 1f shr esi,0x1f
|
||||
884cf8: 03 f2 add esi,edx
|
||||
884cfa: 3b 4f 08 cmp ecx,DWORD PTR [edi+0x8]
|
||||
884cfd: 75 09 jne 0x884d08
|
||||
884cff: 6a 01 push 0x1
|
||||
884d01: 8b cf mov ecx,edi
|
||||
884d03: e8 98 f4 ff ff call 0x8841a0
|
||||
884d08: 8b 0f mov ecx,DWORD PTR [edi]
|
||||
884d0a: 8d 04 76 lea eax,[esi+esi*2]
|
||||
884d0d: 8d 0c c1 lea ecx,[ecx+eax*8]
|
||||
884d10: 8b 47 04 mov eax,DWORD PTR [edi+0x4]
|
||||
884d13: 89 45 08 mov DWORD PTR [ebp+0x8],eax
|
||||
884d16: 89 45 f0 mov DWORD PTR [ebp-0x10],eax
|
||||
884d19: c7 45 fc 00 00 00 00 mov DWORD PTR [ebp-0x4],0x0
|
||||
884d20: 85 c0 test eax,eax
|
||||
884d22: 74 54 je 0x884d78
|
||||
884d24: c7 00 7c f0 a0 00 mov DWORD PTR [eax],0xa0f07c
|
||||
884d2a: 8b 51 04 mov edx,DWORD PTR [ecx+0x4]
|
||||
884d2d: 83 c1 08 add ecx,0x8
|
||||
884d30: c6 45 fc 01 mov BYTE PTR [ebp-0x4],0x1
|
||||
884d34: 89 50 04 mov DWORD PTR [eax+0x4],edx
|
||||
884d37: 51 push ecx
|
||||
884d38: eb 36 jmp 0x884d70
|
||||
884d3a: 3b 4f 08 cmp ecx,DWORD PTR [edi+0x8]
|
||||
884d3d: 75 09 jne 0x884d48
|
||||
884d3f: 6a 01 push 0x1
|
||||
884d41: 8b cf mov ecx,edi
|
||||
884d43: e8 58 f4 ff ff call 0x8841a0
|
||||
884d48: 8b 47 04 mov eax,DWORD PTR [edi+0x4]
|
||||
884d4b: 89 45 08 mov DWORD PTR [ebp+0x8],eax
|
||||
884d4e: 89 45 f0 mov DWORD PTR [ebp-0x10],eax
|
||||
884d51: c7 45 fc 02 00 00 00 mov DWORD PTR [ebp-0x4],0x2
|
||||
884d58: 85 c0 test eax,eax
|
||||
884d5a: 74 1c je 0x884d78
|
||||
884d5c: c7 00 7c f0 a0 00 mov DWORD PTR [eax],0xa0f07c
|
||||
884d62: 8b 4e 04 mov ecx,DWORD PTR [esi+0x4]
|
||||
884d65: 83 c6 08 add esi,0x8
|
||||
884d68: c6 45 fc 03 mov BYTE PTR [ebp-0x4],0x3
|
||||
884d6c: 89 48 04 mov DWORD PTR [eax+0x4],ecx
|
||||
884d6f: 56 push esi
|
||||
884d70: 8d 48 08 lea ecx,[eax+0x8]
|
||||
884d73: e8 d8 4a ef ff call 0x779850
|
||||
884d78: 83 47 04 18 add DWORD PTR [edi+0x4],0x18
|
||||
884d7c: 8b 4d f4 mov ecx,DWORD PTR [ebp-0xc]
|
||||
884d7f: 64 89 0d 00 00 00 00 mov DWORD PTR fs:0x0,ecx
|
||||
884d86: 59 pop ecx
|
||||
884d87: 5f pop edi
|
||||
884d88: 5e pop esi
|
||||
884d89: 8b e5 mov esp,ebp
|
||||
884d8b: 5d pop ebp
|
||||
884d8c: c2 04 00 ret 0x4
|
||||
|
|
@ -0,0 +1,88 @@
|
|||
|
||||
/home/alex/sots-re/dumps/sots.exe: file format pei-i386
|
||||
|
||||
|
||||
Disassembly of section .text:
|
||||
|
||||
00884cb0 <.text+0x483cb0>:
|
||||
884cb0: 55 push ebp
|
||||
884cb1: 8b ec mov ebp,esp
|
||||
884cb3: 6a ff push 0xffffffff
|
||||
884cb5: 68 72 0b 98 00 push 0x980b72
|
||||
884cba: 64 a1 00 00 00 00 mov eax,fs:0x0
|
||||
884cc0: 50 push eax
|
||||
884cc1: 51 push ecx
|
||||
884cc2: 56 push esi
|
||||
884cc3: 57 push edi
|
||||
884cc4: a1 78 8b af 00 mov eax,ds:0xaf8b78
|
||||
884cc9: 33 c5 xor eax,ebp
|
||||
884ccb: 50 push eax
|
||||
884ccc: 8d 45 f4 lea eax,[ebp-0xc]
|
||||
884ccf: 64 a3 00 00 00 00 mov fs:0x0,eax
|
||||
884cd5: 8b f9 mov edi,ecx
|
||||
884cd7: 8b 4f 04 mov ecx,DWORD PTR [edi+0x4]
|
||||
884cda: 8b 75 08 mov esi,DWORD PTR [ebp+0x8]
|
||||
884cdd: 3b f1 cmp esi,ecx
|
||||
884cdf: 73 59 jae 0x884d3a
|
||||
884ce1: 8b 07 mov eax,DWORD PTR [edi]
|
||||
884ce3: 3b c6 cmp eax,esi
|
||||
884ce5: 77 53 ja 0x884d3a
|
||||
884ce7: 2b f0 sub esi,eax
|
||||
884ce9: b8 ab aa aa 2a mov eax,0x2aaaaaab
|
||||
884cee: f7 ee imul esi
|
||||
884cf0: c1 fa 02 sar edx,0x2
|
||||
884cf3: 8b f2 mov esi,edx
|
||||
884cf5: c1 ee 1f shr esi,0x1f
|
||||
884cf8: 03 f2 add esi,edx
|
||||
884cfa: 3b 4f 08 cmp ecx,DWORD PTR [edi+0x8]
|
||||
884cfd: 75 09 jne 0x884d08
|
||||
884cff: 6a 01 push 0x1
|
||||
884d01: 8b cf mov ecx,edi
|
||||
884d03: e8 98 f4 ff ff call 0x8841a0
|
||||
884d08: 8b 0f mov ecx,DWORD PTR [edi]
|
||||
884d0a: 8d 04 76 lea eax,[esi+esi*2]
|
||||
884d0d: 8d 0c c1 lea ecx,[ecx+eax*8]
|
||||
884d10: 8b 47 04 mov eax,DWORD PTR [edi+0x4]
|
||||
884d13: 89 45 08 mov DWORD PTR [ebp+0x8],eax
|
||||
884d16: 89 45 f0 mov DWORD PTR [ebp-0x10],eax
|
||||
884d19: c7 45 fc 00 00 00 00 mov DWORD PTR [ebp-0x4],0x0
|
||||
884d20: 85 c0 test eax,eax
|
||||
884d22: 74 54 je 0x884d78
|
||||
884d24: c7 00 7c f0 a0 00 mov DWORD PTR [eax],0xa0f07c
|
||||
884d2a: 8b 51 04 mov edx,DWORD PTR [ecx+0x4]
|
||||
884d2d: 83 c1 08 add ecx,0x8
|
||||
884d30: c6 45 fc 01 mov BYTE PTR [ebp-0x4],0x1
|
||||
884d34: 89 50 04 mov DWORD PTR [eax+0x4],edx
|
||||
884d37: 51 push ecx
|
||||
884d38: eb 36 jmp 0x884d70
|
||||
884d3a: 3b 4f 08 cmp ecx,DWORD PTR [edi+0x8]
|
||||
884d3d: 75 09 jne 0x884d48
|
||||
884d3f: 6a 01 push 0x1
|
||||
884d41: 8b cf mov ecx,edi
|
||||
884d43: e8 58 f4 ff ff call 0x8841a0
|
||||
884d48: 8b 47 04 mov eax,DWORD PTR [edi+0x4]
|
||||
884d4b: 89 45 08 mov DWORD PTR [ebp+0x8],eax
|
||||
884d4e: 89 45 f0 mov DWORD PTR [ebp-0x10],eax
|
||||
884d51: c7 45 fc 02 00 00 00 mov DWORD PTR [ebp-0x4],0x2
|
||||
884d58: 85 c0 test eax,eax
|
||||
884d5a: 74 1c je 0x884d78
|
||||
884d5c: c7 00 7c f0 a0 00 mov DWORD PTR [eax],0xa0f07c
|
||||
884d62: 8b 4e 04 mov ecx,DWORD PTR [esi+0x4]
|
||||
884d65: 83 c6 08 add esi,0x8
|
||||
884d68: c6 45 fc 03 mov BYTE PTR [ebp-0x4],0x3
|
||||
884d6c: 89 48 04 mov DWORD PTR [eax+0x4],ecx
|
||||
884d6f: 56 push esi
|
||||
884d70: 8d 48 08 lea ecx,[eax+0x8]
|
||||
884d73: e8 d8 4a ef ff call 0x779850
|
||||
884d78: 83 47 04 18 add DWORD PTR [edi+0x4],0x18
|
||||
884d7c: 8b 4d f4 mov ecx,DWORD PTR [ebp-0xc]
|
||||
884d7f: 64 89 0d 00 00 00 00 mov DWORD PTR fs:0x0,ecx
|
||||
884d86: 59 pop ecx
|
||||
884d87: 5f pop edi
|
||||
884d88: 5e pop esi
|
||||
884d89: 8b e5 mov esp,ebp
|
||||
884d8b: 5d pop ebp
|
||||
884d8c: c2 04 00 ret 0x4
|
||||
884d8f: cc int3
|
||||
884d90: 55 push ebp
|
||||
884d91: 8b ec mov ebp,esp
|
||||
|
|
@ -0,0 +1,83 @@
|
|||
|
||||
/home/alex/sots-re/dumps/sots.exe: file format pei-i386
|
||||
|
||||
|
||||
Disassembly of section .text:
|
||||
|
||||
00885380 <.text+0x484380>:
|
||||
885380: 55 push ebp
|
||||
885381: 8b ec mov ebp,esp
|
||||
885383: 6a ff push 0xffffffff
|
||||
885385: 68 30 af 99 00 push 0x99af30
|
||||
88538a: 64 a1 00 00 00 00 mov eax,fs:0x0
|
||||
885390: 50 push eax
|
||||
885391: 83 ec 18 sub esp,0x18
|
||||
885394: 53 push ebx
|
||||
885395: 56 push esi
|
||||
885396: 57 push edi
|
||||
885397: a1 78 8b af 00 mov eax,ds:0xaf8b78
|
||||
88539c: 33 c5 xor eax,ebp
|
||||
88539e: 50 push eax
|
||||
88539f: 8d 45 f4 lea eax,[ebp-0xc]
|
||||
8853a2: 64 a3 00 00 00 00 mov fs:0x0,eax
|
||||
8853a8: 8b f1 mov esi,ecx
|
||||
8853aa: 8b 56 08 mov edx,DWORD PTR [esi+0x8]
|
||||
8853ad: 2b 56 04 sub edx,DWORD PTR [esi+0x4]
|
||||
8853b0: 8d 4e 04 lea ecx,[esi+0x4]
|
||||
8853b3: b8 ab aa aa 2a mov eax,0x2aaaaaab
|
||||
8853b8: f7 ea imul edx
|
||||
8853ba: c1 fa 02 sar edx,0x2
|
||||
8853bd: 8b c2 mov eax,edx
|
||||
8853bf: c1 e8 1f shr eax,0x1f
|
||||
8853c2: 33 db xor ebx,ebx
|
||||
8853c4: 03 c2 add eax,edx
|
||||
8853c6: 33 ff xor edi,edi
|
||||
8853c8: 3b c3 cmp eax,ebx
|
||||
8853ca: 7e 30 jle 0x8853fc
|
||||
8853cc: 8b 11 mov edx,DWORD PTR [ecx]
|
||||
8853ce: 8b ff mov edi,edi
|
||||
8853d0: 8b 5d 08 mov ebx,DWORD PTR [ebp+0x8]
|
||||
8853d3: 39 5a 04 cmp DWORD PTR [edx+0x4],ebx
|
||||
8853d6: 75 02 jne 0x8853da
|
||||
8853d8: 8b fa mov edi,edx
|
||||
8853da: 83 c2 18 add edx,0x18
|
||||
8853dd: 48 dec eax
|
||||
8853de: 75 f0 jne 0x8853d0
|
||||
8853e0: 33 db xor ebx,ebx
|
||||
8853e2: 3b fb cmp edi,ebx
|
||||
8853e4: 74 16 je 0x8853fc
|
||||
8853e6: 8b c7 mov eax,edi
|
||||
8853e8: 8b 4d f4 mov ecx,DWORD PTR [ebp-0xc]
|
||||
8853eb: 64 89 0d 00 00 00 00 mov DWORD PTR fs:0x0,ecx
|
||||
8853f2: 59 pop ecx
|
||||
8853f3: 5f pop edi
|
||||
8853f4: 5e pop esi
|
||||
8853f5: 5b pop ebx
|
||||
8853f6: 8b e5 mov esp,ebp
|
||||
8853f8: 5d pop ebp
|
||||
8853f9: c2 04 00 ret 0x4
|
||||
8853fc: c7 45 dc 7c f0 a0 00 mov DWORD PTR [ebp-0x24],0xa0f07c
|
||||
885403: 89 5d e4 mov DWORD PTR [ebp-0x1c],ebx
|
||||
885406: 89 5d e8 mov DWORD PTR [ebp-0x18],ebx
|
||||
885409: 89 5d ec mov DWORD PTR [ebp-0x14],ebx
|
||||
88540c: 8d 45 dc lea eax,[ebp-0x24]
|
||||
88540f: 50 push eax
|
||||
885410: 89 5d fc mov DWORD PTR [ebp-0x4],ebx
|
||||
885413: e8 98 f8 ff ff call 0x884cb0
|
||||
885418: 8d 4d e4 lea ecx,[ebp-0x1c]
|
||||
88541b: c7 45 fc 01 00 00 00 mov DWORD PTR [ebp-0x4],0x1
|
||||
885422: e8 59 41 da ff call 0x629580
|
||||
885427: 8b 46 08 mov eax,DWORD PTR [esi+0x8]
|
||||
88542a: 8b 4d 08 mov ecx,DWORD PTR [ebp+0x8]
|
||||
88542d: 89 48 ec mov DWORD PTR [eax-0x14],ecx
|
||||
885430: 8b 46 08 mov eax,DWORD PTR [esi+0x8]
|
||||
885433: 83 e8 18 sub eax,0x18
|
||||
885436: 8b 4d f4 mov ecx,DWORD PTR [ebp-0xc]
|
||||
885439: 64 89 0d 00 00 00 00 mov DWORD PTR fs:0x0,ecx
|
||||
885440: 59 pop ecx
|
||||
885441: 5f pop edi
|
||||
885442: 5e pop esi
|
||||
885443: 5b pop ebx
|
||||
885444: 8b e5 mov esp,ebp
|
||||
885446: 5d pop ebp
|
||||
885447: c2 04 00 ret 0x4
|
||||
|
|
@ -0,0 +1,87 @@
|
|||
|
||||
/home/alex/sots-re/dumps/sots.exe: file format pei-i386
|
||||
|
||||
|
||||
Disassembly of section .text:
|
||||
|
||||
00885380 <.text+0x484380>:
|
||||
885380: 55 push ebp
|
||||
885381: 8b ec mov ebp,esp
|
||||
885383: 6a ff push 0xffffffff
|
||||
885385: 68 30 af 99 00 push 0x99af30
|
||||
88538a: 64 a1 00 00 00 00 mov eax,fs:0x0
|
||||
885390: 50 push eax
|
||||
885391: 83 ec 18 sub esp,0x18
|
||||
885394: 53 push ebx
|
||||
885395: 56 push esi
|
||||
885396: 57 push edi
|
||||
885397: a1 78 8b af 00 mov eax,ds:0xaf8b78
|
||||
88539c: 33 c5 xor eax,ebp
|
||||
88539e: 50 push eax
|
||||
88539f: 8d 45 f4 lea eax,[ebp-0xc]
|
||||
8853a2: 64 a3 00 00 00 00 mov fs:0x0,eax
|
||||
8853a8: 8b f1 mov esi,ecx
|
||||
8853aa: 8b 56 08 mov edx,DWORD PTR [esi+0x8]
|
||||
8853ad: 2b 56 04 sub edx,DWORD PTR [esi+0x4]
|
||||
8853b0: 8d 4e 04 lea ecx,[esi+0x4]
|
||||
8853b3: b8 ab aa aa 2a mov eax,0x2aaaaaab
|
||||
8853b8: f7 ea imul edx
|
||||
8853ba: c1 fa 02 sar edx,0x2
|
||||
8853bd: 8b c2 mov eax,edx
|
||||
8853bf: c1 e8 1f shr eax,0x1f
|
||||
8853c2: 33 db xor ebx,ebx
|
||||
8853c4: 03 c2 add eax,edx
|
||||
8853c6: 33 ff xor edi,edi
|
||||
8853c8: 3b c3 cmp eax,ebx
|
||||
8853ca: 7e 30 jle 0x8853fc
|
||||
8853cc: 8b 11 mov edx,DWORD PTR [ecx]
|
||||
8853ce: 8b ff mov edi,edi
|
||||
8853d0: 8b 5d 08 mov ebx,DWORD PTR [ebp+0x8]
|
||||
8853d3: 39 5a 04 cmp DWORD PTR [edx+0x4],ebx
|
||||
8853d6: 75 02 jne 0x8853da
|
||||
8853d8: 8b fa mov edi,edx
|
||||
8853da: 83 c2 18 add edx,0x18
|
||||
8853dd: 48 dec eax
|
||||
8853de: 75 f0 jne 0x8853d0
|
||||
8853e0: 33 db xor ebx,ebx
|
||||
8853e2: 3b fb cmp edi,ebx
|
||||
8853e4: 74 16 je 0x8853fc
|
||||
8853e6: 8b c7 mov eax,edi
|
||||
8853e8: 8b 4d f4 mov ecx,DWORD PTR [ebp-0xc]
|
||||
8853eb: 64 89 0d 00 00 00 00 mov DWORD PTR fs:0x0,ecx
|
||||
8853f2: 59 pop ecx
|
||||
8853f3: 5f pop edi
|
||||
8853f4: 5e pop esi
|
||||
8853f5: 5b pop ebx
|
||||
8853f6: 8b e5 mov esp,ebp
|
||||
8853f8: 5d pop ebp
|
||||
8853f9: c2 04 00 ret 0x4
|
||||
8853fc: c7 45 dc 7c f0 a0 00 mov DWORD PTR [ebp-0x24],0xa0f07c
|
||||
885403: 89 5d e4 mov DWORD PTR [ebp-0x1c],ebx
|
||||
885406: 89 5d e8 mov DWORD PTR [ebp-0x18],ebx
|
||||
885409: 89 5d ec mov DWORD PTR [ebp-0x14],ebx
|
||||
88540c: 8d 45 dc lea eax,[ebp-0x24]
|
||||
88540f: 50 push eax
|
||||
885410: 89 5d fc mov DWORD PTR [ebp-0x4],ebx
|
||||
885413: e8 98 f8 ff ff call 0x884cb0
|
||||
885418: 8d 4d e4 lea ecx,[ebp-0x1c]
|
||||
88541b: c7 45 fc 01 00 00 00 mov DWORD PTR [ebp-0x4],0x1
|
||||
885422: e8 59 41 da ff call 0x629580
|
||||
885427: 8b 46 08 mov eax,DWORD PTR [esi+0x8]
|
||||
88542a: 8b 4d 08 mov ecx,DWORD PTR [ebp+0x8]
|
||||
88542d: 89 48 ec mov DWORD PTR [eax-0x14],ecx
|
||||
885430: 8b 46 08 mov eax,DWORD PTR [esi+0x8]
|
||||
885433: 83 e8 18 sub eax,0x18
|
||||
885436: 8b 4d f4 mov ecx,DWORD PTR [ebp-0xc]
|
||||
885439: 64 89 0d 00 00 00 00 mov DWORD PTR fs:0x0,ecx
|
||||
885440: 59 pop ecx
|
||||
885441: 5f pop edi
|
||||
885442: 5e pop esi
|
||||
885443: 5b pop ebx
|
||||
885444: 8b e5 mov esp,ebp
|
||||
885446: 5d pop ebp
|
||||
885447: c2 04 00 ret 0x4
|
||||
88544a: cc int3
|
||||
88544b: cc int3
|
||||
88544c: cc int3
|
||||
88544d: cc int3
|
||||
Loading…
Add table
Reference in a new issue