发布于 

honeycomb

旧号迁移

靶场honeycomb WP

这题让我体验了一把人肉计算机的快乐

准备阶段

  1. 发现这个题完全没有对输入字符串进行修改,而且输入只有25位。

2.直接看check,发现每次比较的字符只有LR,又由于md5的不可碰撞性,输入应该只有LR两种字符

3.于是出现解题思路:

人肉计算机!

观察整个流程,会发现对每一个字符会进行四个函数中的任意一个,一旦错误就直接跳出函数,否则进入下一轮比较,直到字符串结尾。然后由一个计数器判断是否流程结束,如果结束才返回1。于是设计一个思路:

0.准备纸笔,在纸上留一个计数器位,置0,并留出空字符串Buf;在程序中循环开始处设置断点

1.每次向电脑中输入一个Buf+'R',计数器+=1

2.点击计数器-1次“运行直到断点”按钮,理论上应该不会有问题

3.再点击一次“运行直到断点”按钮:

a)如果显示红色,则跳转失败,Buf+='L',跳转第五步;

b)如果显示紫色(颜色不变),则跳转成功,Buf+='R',F8进入下一步。

4.判断F8出去是否有异常。如果没有异常,运行直到结束:

a)如果运行结果出现祝贺,则取前25位输入进行md5,解题完成;

b)如果运行结果出现错误,则进入下一步。

5.停止程序,重置IDA桌面(这步决定了你的IDA是否出现异常),然后跳转第一步。

结果如图


本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。

本站由 [@Zuni](http://example.com/) 创建,使用 Stellar 作为主题。