Додав Callsites Helper до свого інструменту BN. Я використовую його для пошуку викликачів кожного CRT Rand-draw, щоб я міг анотувати їх у своїх портах Python/Zig. Таким чином ми не лише бачимо, що випромінювали однакову кількість RNG-доборів, а й розрізняємо їх і приписуємо певному місцю в декомпіляції. Це має виявитися неоціненним для розробки детермінованої симуляції в порту, яка базується на відповідному RNG-потоку. $ млрд callsites crt_rand --target crimsonland.exe.bndb --в межах fx_queue_add_random --caller-static caller_static 0x427760 | Зателефонуйте 0x42775b Всередині: fx_queue_add_random @ 0x427700 Каллі: crt_rand @ 0x461746 індекс викликів: 0 всередині запиту: fx_queue_add_random HIL: float.t(crt_rand() & 0xf) * fconvert.t(0.0099999978f) + fconvert.t(0.839999974f) Контекст: 0x427749 Mov dword [0x49042c], 0x3f47ae14 0x427753 дзвонить 0x460d86 0x427758 додати особливо 0x4 > 0x42775b дзвонить 0x461746 0x427760 і eax, 0xf 0x427763 Mov Dword [esp], EAX 0x427767 fild st0, dword [esp]
Забув прикріпити фото, тому я використовую це так. Це дозволить відобразити кожен окремий ранд на callsite, щоб я міг легко виявити залишкові розбіжності.
1,48K