8cba70dc90
- Add 8 files present in docker/fifa17-python/tools but missing from the top-level tree: fut_accounts.py + 7 test_*.py contracts (all committed in the server's docker tree; byte-identical to the running image). - Preserve newer responder work already matching the running container: utas_server.py (offlineSeason), lsx_responder_v2.py (OPENFUT_BIND), blaze_responder_v3b.py, autopatch.py, pow_server.py, fut_store.py, test_fut_contract.py, fifa17-hook-m1.sh. - Add 30 newer ghidra_queries (draft purchase/state, SBC 9-26, runtime registries). Local tree is now a strict superset of B with all shared files byte-identical.
26 lines
883 B
Python
26 lines
883 B
Python
"""Trace FutPurchaseDraftModeServerResponse beyond its known seven-int parser."""
|
|
|
|
cls = "FutPurchaseDraftModeServerResponse"
|
|
print("CLASS", cls, class_deser(cls))
|
|
|
|
seen = set()
|
|
for deser, vt, factory in class_deser(cls):
|
|
print("\nVTABLE", hex(vt), "FACTORY", hex(factory), "DESER", hex(deser))
|
|
print(vtable(vt, 32))
|
|
for target in [factory, deser] + [t for _, t, name in vtable(vt, 32) if name]:
|
|
if target in seen:
|
|
continue
|
|
seen.add(target)
|
|
print("\n===", hex(target), fname(target), "===")
|
|
print(dec(target, 300))
|
|
print("XREFS", xrefs_to(target)[:100])
|
|
|
|
for target in (0x18014C090, 0x18014C260, 0x18014C820, 0x18014C8A0):
|
|
if target in seen:
|
|
continue
|
|
print("\n=== CANDIDATE", hex(target), fname(target), "===")
|
|
print(dec(target, 300))
|
|
print("XREFS", xrefs_to(target)[:100])
|
|
|
|
print("QUERY_DONE")
|