"""ADVERSARIAL VERIFY BATCH 4. T1 dim4 claim 4: exactly six HAS_DUPLICATE code sites; five publish (item+0x10 != 0), one hardcodes 0. My independent objdump census found SIX sites: 0x1800439e4, 0x18008481d (direct lea on literal 0x1801f6510) 0x1800943ce, 0x180094c24, 0x18009661c, 0x180097400 (via ptr slot 0x1802a1ff8) Note 0x18009bc40 is NOT among them, yet the claim lists FUN_18009bc40 as a HAS_DUPLICATE publisher. Resolve containing functions and settle it. T2 dim4 claim 5: FUN_180127cc0 pile serializer -- record+0x08 switch 5/6/else, atoms 0x16b/0x15c/0x226/0x2fe/0x331/0x330/0x262/0x87. Ladder + full decompile. T3 dim5 claim 5: the three claimed consumers of model vt+0x4d8 (0x18011c200). Enumerate ALL xrefs to 0x18011c200 and to the accessor address, and list callers. T4 dim5 claim 6 ATTACK: who writes model+0x5a38's begin/end? dim5 says unknown and guesses starterPack. Enumerate callers of the vt+0x160 accessor 0x18011b780 and check whether the CreatePack/purchased deserializers push into it. """ import traceback try: print("=== T1 containing functions of the six HAS_DUPLICATE sites ===") for a in (0x1800439e4, 0x18008481d, 0x1800943ce, 0x180094c24, 0x18009661c, 0x180097400): f = func(a) print(" %#x -> %s @ %#x" % (a, f.getName() if f else "NONE", int(f.getEntryPoint().getOffset()) if f else 0)) f = func(0x18009bc40) print(" FUN_18009bc40 body = %s" % (f.getBody() if f else None)) print(" any HAS_DUPLICATE site inside FUN_18009bc40? ", any(f.getBody().contains(addr(a)) for a in (0x1800439e4, 0x18008481d, 0x1800943ce, 0x180094c24, 0x18009661c, 0x180097400))) print() print("=== T3 xrefs to the vt+0x4d8 accessor 0x18011c200 (count getter) ===") for frm, typ, fn, ent in xrefs_to(0x18011c200): print(" from %#x %s in %s @ %#x" % (frm, typ, fn, ent)) print("=== T4 xrefs to the vt+0x160 accessor 0x18011b780 (claim vector) ===") xs = xrefs_to(0x18011b780) print(" total xrefs: %d" % len(xs)) for frm, typ, fn, ent in xs: print(" from %#x %s in %s @ %#x" % (frm, typ, fn, ent)) print() for a, t in [(0x180127cc0, "T2 pile/itemData request serializer"), (0x18013bd40, "shared purchased/massinfo body (does it push into vt+0x160?)")]: s = dec(a) print("=" * 100) print("### DECOMPILE %s %#x len=%d" % (t, a, len(s))) print("=" * 100) print(s) print("### END %#x len=%d PRINTED IN FULL" % (a, len(s))) except Exception: traceback.print_exc()