0x01引言

明天做一道逆向的题时,应用od关上exe文件后,按F8始终单步执行到最初完结了也没输入任何货色

然而失常执行exe文件是这个样子的

推敲了良久....而后留神到这是一个多线程程序。因为od同时只能跑一个线程,一个线程在调试的时候,其它线程是暂停的。所以我始终f8的时候子线程基本没有运行就跑完了...

0x02思路

咱们的指标是输出正确的flag,所以只有把断点下在判断flag是否正确的汇编代码行就ok了。

0x03步骤

1:将文件拖入od,咱们发现曾经有两个线程,一个主线程,一个子线程

2:点击调试->运行线程(F11)直到呈现输出flag的字样

3、关上ida,查看判断flag处的汇编代码,并记下要害汇编代码行,在od中进行搜寻(ctrl+f)并下断(F2)

4、下好断点后轻易输出flag并运行(F9)到断点处后,单步执行(F8),即可看到实在flag

0x04 tips

点击设置->设置(O)中设置有新线程时暂停