首页
社区
课程
招聘
[原创]第二阶段第一题答案提交~
发表于: 2007-8-28 14:58 7474

[原创]第二阶段第一题答案提交~

2007-8-28 14:58
7474
调试程序发现程序会读取名为“test.txt”文件的内容到内存中,并将数据复制到堆栈中。另外发现复制长度由文件前8字节计算得出,且异常处理入口位于待复制堆栈之后。当文件长度大于54C时会导致堆栈溢出。

构建一个长度为550的文件,修改复制到堆栈异常处理入口处的数据,使之指向文件在内存中的数据段,再在文件中写入MessageBoxA的代码,即可完成!

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 6051
活跃值: (1441)
能力值: ( LV15,RANK:1473 )
在线值:
发帖
回帖
粉丝
2
突然发现规则里对文件大小的要求非常高,又看了下,原来根本不需要构建那么长的文件,长度是由前8字节控制的。。。

只需要溢出到异常处理入口即可。。。
上传的附件:
2007-8-28 15:30
0
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
3
2K和XP都直接崩了
2007-8-28 15:52
0
雪    币: 6051
活跃值: (1441)
能力值: ( LV15,RANK:1473 )
在线值:
发帖
回帖
粉丝
4
改规则后发现前8位要穷举,花了一天时间穷举无果,最后静下心来逆向分析,原来某些值是固定的,花了2小时,修正N多粗心大意的错误后终于成功。。。

原理是溢出SUB的返回位置,使之执行到文件映射的内存区域,剩下的就由自己控制了
上传的附件:
2007-8-29 22:15
0
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
5
验证通过~~
2007-8-29 22:38
0
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
6
48.857911477469053440892901717078
2007-9-2 18:59
0
游客
登录 | 注册 方可回帖
返回
//