ebCTF2013 RE
今天在看以前的笔记时看到了这篇,觉得有意思,就放上来了
放入IDA中分析,先看下流程:
找到主函数,空格
可以看到具体的一些步骤和相互之间的关系
大体就是这样
点击view->open subviews->strings 可以看到分析出的字符串
这就是程序运行时的流程,可以看出,我们需要投掷3-1-3-3-7,这几乎是不可能的,所以我们需要改动跳转的判断条件。
F5键可以打开插件HexRays 查看伪代码
可以看出这里的判断条件
于是结合流程图我们可以看出,应该修改的是每一部分最后一个跳转,此语句本来是jnz跳转,我们只需把它修改成jz即可
通过edit->patch program->change byte 修改机器码,把原来开头的75改为74即可
最后运行一下发现每次成功后flag都会一闪而过
于是我们应该把最后的跳转到retn的jmp给nop掉
大功告成