Quantcast
Channel: Python extension for WinDbg
Viewing all articles
Browse latest Browse all 1625

New Post: как сделать трасировку функции

$
0
0
Есть две функции:
trace()
step()

Единственная проблема, эти функции ( как и go() ) нельзя вызывать в коллбеках брейкпойнтов, исключений и.т.д. Если для обработки брейкпойнта используется коллбек - нужно из него вернуть eventResult.Break или True, и в основном скрипте уже в цикле вызывать trace(). Примерно так:
setBp( address )  # set breakpoint

go() # run target

while True:
    step()
    if disasm().instruction == 'ret'
        break
Второй вариант: если функция "плоская", ее можно дизассемблировать с помощью класса disasm, найти смещение до инструкции ret и установить на нее брейкпойнт

Viewing all articles
Browse latest Browse all 1625

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>