Přidal jsem pomocníka pro volání do svého BN nástroje. Používám ho k nalezení volajících každého CRT RAND výkresu, abych je mohl anotovat v python/zig portech. Tímto způsobem nejenže vidíme, že jsme vyprodukovali stejný počet RNG tahů, ale také je rozlišujeme a přiřadíme na konkrétní místo v dekompilaci. To by mělo být neocenitelné pro vývoj deterministické simulace v portu, která závisí na odpovídajícím RNG proudu. $ bn callsites crt_rand --cíl crimsonland.exe.bndb --v rámci fx_queue_add_random --caller-static caller_static 0x427760 | Zavolejte 0x42775b Within: fx_queue_add_random @ 0x427700 callee: crt_rand @ 0x461746 Call-index: 0 Uvnitř dotazu: fx_queue_add_random HIL: float.t(crt_rand() & 0xf) * fconvert.t(0.0099999978f) + fconvert.t(0.839999974f) Kontext: 0x427749 Mov Dword [0x49042c], 0x3f47ae14 0x427753 zavolat 0x460d86 0x427758 přidat ESP, 0x4 > 0x42775b zavolejte 0x461746 0x427760 a eax, 0xf 0x427763 Mov Dword [ESP], EAX 0x427767 fild st0, dword [espec]
Zapomněl jsem přiložit fotku, tak to používám takhle. To umožní mapovat každý jednotlivý RAND na callsite, takže mohu snadno odhalit případné zbývající divergence.
2,01K