首页
社区
课程
招聘
[原创]]腾讯2010安全技术竞赛[第一阶段 第一题]
发表于: 2010-10-19 16:22 3180

[原创]]腾讯2010安全技术竞赛[第一阶段 第一题]

2010-10-19 16:22
3180
exe文件中谈对话框代码:
004011C0   .  6A 00         push    0
004011C2   .  68 6C604000   push    0040606C                         ;  UNICODE "ExploitMe"
004011C7   .  68 60604000   push    00406060                         ;  UNICODE "Fail"
004011CC   .  6A 00         push    0
004011CE   .  FF15 10854000 call    dword ptr [408510]             ;  user32.MessageBoxW

004010F5  |.  81FB 84000000 cmp     ebx, 84                          ;  文件大小超过84h就不行
004010FB  |.  A3 14854000   mov     dword ptr [408514], eax
00401100  |.  77 16         ja      short 00401118

所以填充84h个FF ,弹出错误提示:"0x0040116a" 指令引用的 "0xffffffff" 内存。该内存不能为 "read"。

0040116A  |.  FF12          call    dword ptr [edx]                  ;  弹出"Fail"

这句代码call了 "0xffffffff" 指向的地址。经过定位,正式提交的dat文件的0x80~0x84字节。

下面对exe文件中谈对话框代码进行改造。由于已经取得MessageBoxW,MessageBoxA 的地址,有两种方法可以用。
用MessageBoxA 能省一点字节,但是需要自己构造ASCII字符串"ExploitMe" "Exploit success",还要将call    dword ptr [408510] 改成call    dword ptr [408514]
用MessageBoxW空间大一点,但是可以利用已有代码,只需要一个Unicode的"Exploit success"。

附件中exploit1.dat 为ASCII版本,exploit9.dat为Unicode版本。

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//