wip: checkpoint FIFA 17 SBC research for Windows migration
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
"""DIMENSION 3 SEASONS q5.
|
||||
Q: is the GET /season (SEASONLIST) request reachable, and from where? Descriptor
|
||||
row 69 handler is FUN_180124710. Get its callers and decompile it. Also decompile
|
||||
the +0x7138 struct writer FUN_18011c2e0 and FUN_18011a830-area accessor to locate
|
||||
the writer of the count short at +0x7138+0x96/+0x98. And decompile the three vtable
|
||||
getter stubs (0x18011c150/+0x588, 0x18011b8a0/+0x898) via dec() on the address.
|
||||
CONTROL: callers() proven working in q1 (returned [] for table-dispatched fns and
|
||||
non-[] is expected for a normally-called fn); FUN_18011dc50 is a known
|
||||
table/virtual-dispatched writer, use its caller set shape as sanity.
|
||||
"""
|
||||
import traceback
|
||||
try:
|
||||
for name, a in [
|
||||
("FUN_180124710 SEASONLIST handler", 0x180124710),
|
||||
("FUN_18011c2e0 (+0x7138 accessor)", 0x18011c2e0),
|
||||
]:
|
||||
print("=" * 60, name, hex(a))
|
||||
print("callers:", callers(a))
|
||||
d = dec(a); print("LEN", len(d)); print(d)
|
||||
|
||||
print("=" * 60, "getter stub +0x588 @0x18011c150")
|
||||
print(dec(0x18011c150))
|
||||
print("=" * 60, "getter stub +0x898 @0x18011b8a0")
|
||||
print(dec(0x18011b8a0))
|
||||
print("=" * 60, "accessor @0x18011a822 area (fn 0x18011a830?)")
|
||||
print("fname 0x18011a822 ->", fname(0x18011a822))
|
||||
print(dec(0x18011a822)[:1200])
|
||||
|
||||
# who calls the SeasonList RESPONSE deser's install? find xrefs to 0x180124710
|
||||
print("=" * 60, "xrefs_to FUN_180124710")
|
||||
for x in xrefs_to(0x180124710):
|
||||
print(" ", hex(x[0]), x[1], x[2], hex(x[3]))
|
||||
|
||||
sys.stdout.flush()
|
||||
os._exit(0)
|
||||
except Exception:
|
||||
traceback.print_exc()
|
||||
sys.stdout.flush()
|
||||
os._exit(0)
|
||||
Reference in New Issue
Block a user