honeycomb
旧号迁移
靶场honeycomb WP
这题让我体验了一把人肉计算机的快乐
准备阶段
- 发现这个题完全没有对输入字符串进行修改,而且输入只有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是否出现异常),然后跳转第一步。
结果如图
