What I would do is the following steps:
- use IDA Pro to get all functions names and addresses (hopefully names if you renamed any of them) in the binary and export it as a python dictionary. examples can be found here.
- Install PyKd as described here and here.
- Create a PyKd script to set conditional breakpoints to print something everytime they are hit and then continue execution, like:
import pykd
funcList = { 'funcA': 0xAAAAAAAA,
'funcB': 0xBBBBBBBB,
...
}
for funcName, funcAddr in funcList.items():
pykd.DbgCommand('bp ' + funcAddr + ' ".echo ' + funcName + ' executed; gc"')
- Execute in WinDbg:
.load pykd
!py <path to script>
g
this will trace each function during the execution with the function names from your IDA Pro database.