首页
社区
课程
招聘
[原创][答案提交][第一阶段◇第一题]看雪论坛.腾讯公司2008软件安全竞赛
2008-10-1 19:02 2205

[原创][答案提交][第一阶段◇第一题]看雪论坛.腾讯公司2008软件安全竞赛

2008-10-1 19:02
2205
STEP1:
确定函数为WinExec,将函数WinExec用LordPe添加到输入表,并记下FirstThunk为0x5017。

STEP2:
在磁盘文件物理地址0x4CB处输入字串 "explorer.exe http://bbs.pediy.com" (不含双引号最后以0x00结尾)

STEP3:
OD打开文件(pediy.dll基地址为0x3F0000)输入代码如下
003F10EE p>/$  50               push eax                                                ; /ShowState
003F10EF   |.  68 CB103F00      push pediy.003F10CB                                     ; |CmdLine = "explorer.exe http://bbs.pediy.com"
003F10F4   |.  FF15 17503F00    call dword ptr ds:[<&Kernel32.WinExec>]                 ; \WinExec
003F10FA   \.  C3               retn
根据WinExec的FirstThunk地址+pediy.dll基地址 = 0x003F5017.所以call [3F5017]即为执行WinExec
虚拟地址可能会不同,故此处仅做示例。

STEP4:
修复2处重定位。虚拟地址为0x003F10F0和0x003F10F6

STEP5:
添加导出表,因为之前添加函数到输入表时候LordPe添加了一个区块,但区块太小,手工调整其大小后,顺便将其区块名改名为 ".PB" ,然后添加导出表,导出表在磁盘文件物理地址为0xC70处,大小为0x45

最终写了TestLoader测试通过,自我判断OpenUrlA函数大小为13(D)。

[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。

上传的附件:
收藏
点赞0
打赏
分享
最新回复 (1)
雪    币: 264
活跃值: (30)
能力值: ( LV12,RANK:250 )
在线值:
发帖
回帖
粉丝
kangaroo 6 2008-10-2 19:56
2
0
RVA:10EE
OpenUrlA函数大小=13 字节
附件提交次数=1
得分=min[1.0,(13/13)]×100-(1-1)×5=100.0
游客
登录 | 注册 方可回帖
返回