-
-
[原创]第二题WriteUp
-
发表于: 2017-10-27 22:29 2865
-
非常坑爹的题目……
乍一看程序流程很清晰,输入一个字符串,拆成两段,对对应的两个整数进行二元一次线性运算并比对。
使用z3解方程,然而……解出来带小数
改变思路,输入的字符到第12个字符以后,会栈溢出,覆盖返回地址,从而控制程序流程。
正好程序从0x413131开始,有大段的代码没有用到,故输入随便12个字符+11A来跳转。
从413131开始先是重新开了一个栈,然后有大量的跳转和花指令,故利用IDA的Trace来跟踪程序真实流程。
第一个真正的check点
设三段对应的整数分别为x, y, z, 有
(x - y) * 4 + x + z == 0xEAF917E2
构造一组满足不定方程的解,继续跟踪
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
赞赏
他的文章
看原图
赞赏
雪币:
留言: