0x01引言

今天做一道逆向的题时,使用od打开exe文件后,按F8一直单步执行到最后结束了也没输出任何东西
image.png
然而正常执行exe文件是这个样子的
image.png
琢磨了好久....然后注意到这是一个多线程程序。由于od同时只能跑一个线程,一个线程在调试的时候,其它线程是暂停的。所以我一直f8的时候子线程根本没有运行就跑完了...
image.png

0x02思路

我们的目标是输入正确的flag,所以只要把断点下在判断flag是否正确的汇编代码行就ok了。

0x03步骤

1:将文件拖入od,我们发现已经有两个线程,一个主线程,一个子线程
image.png

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

3、打开ida,查看判断flag处的汇编代码,并记下关键汇编代码行,在od中进行搜索(ctrl+f)并下断(F2)
image.png
image.png

4、下好断点后随便输入flag并运行(F9)到断点处后,单步执行(F8),即可看到真实flag
image.png

0x04 tips

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


白风之下
10 声望3 粉丝