He añadido el helper de los sitios de llamadas a mi herramienta de BN. Para lo que lo uso es encontrar los llamadores de cada dibujo RAND CRT, para poder anotarlos en mis puertos Python/Zig. De este modo, no solo podemos ver que hemos emitido el mismo número de cartas de RNG, sino también distinguirlas y atribuirlas a un lugar específico en la descompilación. Esto debería resultar invaluable para desarrollar una simulación determinista en port que dependa de un flujo RNG correspondiente. $ bn sitios de llamada crt_rand --objetivo crimsonland.exe.bndb --dentro de fx_queue_add_random --caller-static caller_static 0x427760 | Llama 0x42775b Dentro: fx_queue_add_random @ 0x427700 CALLEEE: crt_rand @ 0x461746 índice de llamadas: 0 Within-Query: fx_queue_add_random hlil: float.t(crt_rand() & 0xf) * fconvert.t(0.00999999978f) + fconvert.t(0.839999974f) Contexto: 0x427749 mov dword [0x49042c], 0x3f47ae14 0x427753 llamar a 0x460d86 0x427758 añadir especialidad, 0x4 > 0x42775b llamar a 0x461746 0x427760 y eax, 0xf 0x427763 mov dword [esp], eax 0x427767 fild st0, dword [esp]
Se me olvidó adjuntar una foto, así que así es como la uso. Esto permitirá mapear cada RAND individual al sitio de llamada, para poder mostrar fácilmente cualquier divergencia restante.
1.48K