ida pro 使用F5碰到的陷阱与总结(二)

前面写遇到了一个陷阱,

这里记录一下另一个v5(&loc_804C257, &v4);(其中v5=0),是在函数0804c217中,

ida pro 使用F5碰到的陷阱与总结(二)

 我们看下F5自动翻译会出现哪些问题,如上。

那么,我们把v5(&loc_804C257, &v4)这段汇编代码改一下,让F5再运行一遍,看一下结果。

ida pro 使用F5碰到的陷阱与总结(二)

ida pro 使用F5碰到的陷阱与总结(二) 

ida pro 使用F5碰到的陷阱与总结(二) 

最后一张图是重新执行F5后的伪代码,这里pivot_root(,)的第二个参数变成了flags,而不是原先的a1。这估计是因为F5插件在汇编代码更改以后,意识到了flags这个变量在发生改变,所以pivot_root(,)的第二个参数变成了flags,这里原先的汇编代码中其实也是flags的,只不过如果没有下面的循环,等于flags和等于a1是一样的,F5自动优化为将pivot_root(,)的第二个参数改为a1了。

通过这段代码说明:以后碰到这种循环,可以把它先改为循环的逻辑,然后重新运行F5,这样可以省去我们重新一段一段阅读代码的时间。可见,这个break的crackme也真够变态的。

上一篇:BUUCTF逆向DAY-1[1-4]


下一篇:BUU 逆向 reverse2