偶然在52上看到 这个帖子
顺手打开看了一下

主函数这里有个错误指令,附近没有跳转所以大概不是花
往上翻一下

标准的try语句,新增了一个异常处理结构

可以看到handler指向了401269+1的地方,而401269正好就是错误指令地址
也就是说相当于一个花了

修正一下变成这个样子
直接输出RROR!然后退出
就全完了233
注意到输入的buff在data段,以及scanf是%s来的,所以存在溢出

下面的这一堆鬼东西有名字的就没几个,交叉引用还都指向start函数
懒得一个一个去研究了
直接上cyclic

本文介绍了通过逆向工程分析一个存在溢出的程序,发现可以利用错误指令附近的异常处理结构来修改TLS。通过cyclic工具生成payload并触发异常,确定了溢出点。由于存在check函数且其地址不可见,选择直接跳转到'OK'标签。最后,分析发现溢出内存涉及静态TLS,进一步验证了这一结论。
最低0.47元/天 解锁文章
808

被折叠的 条评论
为什么被折叠?



