首页
社区
课程
招聘
[结束][第一阶段◇第一题]看雪论坛.腾讯公司2008软件安全技术竞赛
发表于: 2008-10-1 12:01 29408

[结束][第一阶段◇第一题]看雪论坛.腾讯公司2008软件安全技术竞赛

2008-10-1 12:01
29408
收藏
免费 0
支持
分享
最新回复 (236)
雪    币: 64
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
201
想过好多方案,但都被aker说违规了,,规则说明欠详细点~
2008-10-4 12:19
0
雪    币: 282
活跃值: (31)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
202
123456
2008-10-4 12:21
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
203
早上才下载来看. 没来得及参加. 似乎很多人改的都不是出题者的本意了.

我可能会这么做.(没问题) 11 byte
OpenUrlA:
007810CA > .  8BDC          mov     ebx, esp
007810CC   .  BC F0217800   mov     esp, <&KERNEL32.WinExec>  <-指向下面
007810D1   .  C3            retn
007810D2   .  8BE3          mov     esp, ebx
007810D4   .  C3            retn

ESP设来这里(.rdata or .data):
[WinExec] [07810D2] [0783050]   [5]
  IAT       relc修   relc修    Winexec的参数1
             ret     Winexec的参数0

IMp'Exp手动设一下即可. 空间多的是.
2008-10-4 12:26
0
雪    币: 249
活跃值: (35)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
204
似乎我硬编码了~!
2008-10-4 12:42
0
雪    币: 293
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
205
佩服佩服,真是大开眼界,学到了很多新思路~
2008-10-4 13:08
0
雪    币: 497
活跃值: (63)
能力值: ( LV3,RANK:25 )
在线值:
发帖
回帖
粉丝
206
只要用ret就只能调用一次
2008-10-4 13:26
0
雪    币: 231
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
qdk
207
[QUOTE=沙金;516349]7字节的实现:不过,我也不知道这算不算7字节
修改MessageBox下面的ret C
JMP 到一个地址。然后对ShellExecuteExA 函数进行HOOK
OpenUrlA里的代码
call [xxxxx] ;ShellExecuteExA    <--6字节
retn   ...[/QUOTE]

这样也可以吗
2008-10-4 13:40
0
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
208
hook异常,把OpenUrlA导出地址设为0,实现0个字节算了。
2008-10-4 13:46
0
雪    币: 258
活跃值: (16)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
209
期待高手的详细分析报告
2008-10-4 13:48
0
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
210
破坏ebx,用ebx也是多余的。
2008-10-4 13:49
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
211
Aker,刚看到你留的消息,我重新上传了文件
呵呵,很喜欢参加这个比赛,希望能保留继续的希望,谢谢哈
上传的附件:
2008-10-4 14:25
0
雪    币: 503
活跃值: (80)
能力值: (RANK:280 )
在线值:
发帖
回帖
粉丝
212
如果不破坏原始代码,最简单的函数调用应该还是194楼所提到的system,可惜我之前没有想到因此用的是WinExec浪费了一个字节,命令行还是explore.exe http://bbs.pediy.com最直接并且不用指定路径

因此如果以testfile为准,考虑到GetProcAddress的返回值在EAX,紧接的调用因此代码可以如下
push dword ptr [eax+??]      ;命令行压栈
call  dword ptr [eax+??]      ;跳转到system
retn

如果考虑兼容性,eax!=eip的话,

B8 ?? ?? ?? ??       mov   eax, offset "explore.exe http://bbs.pediy.com"
50                               push  eax
FF 50 ??       call   dword ptr [eax+??]
C3             retn
2008-10-4 16:53
0
雪    币: 503
活跃值: (80)
能力值: (RANK:280 )
在线值:
发帖
回帖
粉丝
213
用system就是有一个缺点,目标进程没有关闭之前不会返回,这样实际上是阻碍了调用者的进一步操作,如果要避免这个问题可疑用WinExec,但是那样会至少增加一个字节,WinExec的第二个参数在标准调用时通常是6A 01 PUSH 01,不过这个也可以随便压一个非零值,例如55 PUSH EBP同样有效
2008-10-4 16:59
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
214
偶昨天重新提交了第二次代码
MS很久都没有人下载呢。。。是提交的方法不对么?
我是重新发贴
2008-10-4 17:26
0
雪    币: 207
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
215
偶也是
2008-10-4 17:48
0
雪    币: 6051
活跃值: (1441)
能力值: ( LV15,RANK:1473 )
在线值:
发帖
回帖
粉丝
216
看了大家的代码,真的是惜字节如金啊

我提交的13字节版本,但是搞错网址了,真不明白我怎么就毫不犹豫的写了www.pediy.com呢?

郁闷中。。。
2008-10-4 18:08
0
雪    币: 221
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
217
题目要求没有说清楚,
2008-10-4 18:23
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
218
强烈支持
学习!
2008-10-4 19:08
0
雪    币: 231
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
qdk
219
问一下在哪里可以看到审判结果
2008-10-4 19:14
0
雪    币: 497
活跃值: (63)
能力值: ( LV3,RANK:25 )
在线值:
发帖
回帖
粉丝
220
判你到fox river
2008-10-4 19:29
0
雪    币: 220
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
221
为什么,我提交的没有人看,也没有人提出意见??也不能给版主发消息,唉。不知道我做的对不?
2008-10-4 19:51
0
雪    币: 321
活跃值: (271)
能力值: ( LV13,RANK:1050 )
在线值:
发帖
回帖
粉丝
222
严重学习牛人们。
2008-10-5 00:27
0
雪    币: 224
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
223
加点代码加个shell运行,对了还要加个输出表!!!个人看法....功能改能完成.
2008-10-7 19:50
0
雪    币: 1491
活跃值: (985)
能力值: (RANK:860 )
在线值:
发帖
回帖
粉丝
224
强烈支持。。。
2008-10-8 14:35
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
225
路过灌水~忙着找工作,没时间搞,就算有时间也搞不定,嘿嘿
2008-10-9 15:04
0
游客
登录 | 注册 方可回帖
返回
//