1、无法单步调试
在调试多线程程序的时候,如果遇到断点能断下来,但是一按F7/F8程序就运行起来了,这种情况多半是线程被挂起了
首先是去看看线程窗口,是不是有线程被挂起来,如果有,右键-->Resume all thread,然后就可以继续单步调试了
2、程序运行到一半,OD就已经退出,进程终止
这种情况一般是程序有一些反调试手段,我当时的情况是有两个线程,总是在第一个线程结束的时候OD就终止了,但是我需要分析的数据都在第二个线程里面,所以当时纠结了好久,试过下各种断点,包括断在创建线程、_exitthread之类的地方,但是还是无济于事。再说明一下,我当时是在64位机上面调试,我调试的程序进程B是由另一个程序进程A启动的,在OD中是用附加了B进程。
解决办法就是:原版OD+StrongOD+SharpOD 64,因为StrongOD很多功能可能在64位机器上面无法正常执行其功能,需要用到SharpOD来执行主要的反调试功能。
用上面的配置把程序加载之后,就不会出现运行到一半OD就终止了,能够运行到程序结束。
StrongOD配置:
SharpOD配置:
搜索关注公众号[逆向小生],不定期更新逆向工程师需要掌握的技能,包括Windows和Android方面的逆向,还有作为一个逆向工程师的思维模式。