首页
社区
课程
招聘
[原创]第二阶段第一题答案
发表于: 2007-8-28 16:13 7909

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

2007-8-28 16:13
7909
首先要把长度计算出来,就是求一个UINT64 x使得
DWORD(x*0x78CC02A869948F1B)=DWORD(0x5BE6FF82A5164785+0x0D)

编程解出来x=0x3D6365D6

然后构造溢出代码,由于VirtualAlloc返回的地址在有无加载ollydbg时不同,加载后是0x3F0000,不加载是0x3E0000,所以我写了两份test.txt。具体代码也无非就是加入字符串然后再拷贝过去,然后恢复寄存器,返回。

在我的XP2中文系统上是没问题了。可能对其他系统不能正常溢出吧,反正取决于那个分配的地址是多少了,不过我的过程应该基本差不多了,希望你们能给我加分。

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

上传的附件:
收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
2
你好,请留意http://bbs.pediy.com/showthread.php?t=50554中附件上面的红字部分

规则作了一些调整,EXPLOIT必须对WIN NT 32位操作系统兼容,为你带来的不便,请见谅。

你的EXPLOIT没通过2K下的测试
2007-8-28 16:21
0
雪    币: 120
活跃值: (58)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
能不能给点儿提示啊。

栈地址是变化的,堆地址也是变化的,可以返回到堆顶,又只找到一个解,不是可执行代码。
2007-8-28 20:10
0
雪    币: 120
活跃值: (58)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
btw:大标题写错了。

重新写了一个,按照堆栈地址返回的,希望win2000下可以通过。
上传的附件:
2007-8-28 20:50
0
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
5
2K下还是不通过~~
2007-8-28 22:33
0
雪    币: 120
活跃值: (58)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
用XP的2000兼容模式可以通过,请检查

重新换了新的头4个字节,这次应该差不多了。
上传的附件:
2007-8-28 22:57
0
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
7
验证通过~~
2007-8-29 07:52
0
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
8
84.612575417792639220787039211909
2007-9-2 21:09
0
游客
登录 | 注册 方可回帖
返回
//