首页
社区
课程
招聘
[娱乐]某些牛人们的方法
发表于: 2008-10-4 14:44 18309

[娱乐]某些牛人们的方法

2008-10-4 14:44
18309
收藏
免费 7
支持
分享
最新回复 (48)
雪    币: 503
活跃值: (80)
能力值: (RANK:280 )
在线值:
发帖
回帖
粉丝
26
之前我也是用call+retn,但这里还可以省一个字节,把call改成jmp的话后面的C3 retn也省了,如果考虑GetProcAddress的返回值在EAX,那样不改堆栈最少也只需要6字节

多谢发哥提醒,jmp不能改,我忘记了先后顺序
2008-10-4 20:27
0
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
27
jmp过去返回地址在参数下面,不知道你是怎么测试成功的
2008-10-4 20:57
0
雪    币: 503
活跃值: (80)
能力值: (RANK:280 )
在线值:
发帖
回帖
粉丝
28
汗。。。没测试,忘记先后了,只是猜测
2008-10-4 21:01
0
雪    币: 479
活跃值: (25)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
29
7字节真是精妙,跟牛人们学了不少
2008-10-4 21:07
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
30
同样是Stack的应用, 应该没人会真的提交自杀式的开IE吧
刚刚看公式好像 <=13byte 都是100分.
2008-10-4 21:14
0
雪    币: 220
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
31
看了大家的代码,真是自愧不如,唉!!
2008-10-4 21:56
0
雪    币: 220
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
32
对于代码2还是不解,希望楼主能给个详细大案,只怪我是初学者,太怀了
2008-10-4 21:59
0
雪    币: 334
活跃值: (22)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
33
[QUOTE=;]...[/QUOTE]
7个字节的还有一个答案是:B8 xx xx xx xx 94 C3
不过思路都是一样的
2008-10-4 22:17
0
雪    币: 221
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
34
7个字节的应该是不算的,因为RET后执行的仍然是用户的代码
2008-10-4 22:32
0
雪    币: 334
活跃值: (22)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
35
不是用户代码.....
2008-10-4 22:33
0
雪    币: 296
活跃值: (89)
能力值: ( LV15,RANK:340 )
在线值:
发帖
回帖
粉丝
36
确实不是用户代码,你看14楼的分析过程,实际ret执行的就是WinExec的地址,而参数是通过修改esp达到“压栈”目的地!
我之前也没想明白,这个7字节的真的很精妙
2008-10-4 22:39
0
雪    币: 221
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
37
呵呵,不好意思,刚才没看清楚
2008-10-4 22:41
0
雪    币: 221
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
38
不过7个字节的版本好像没有包括保存和恢复ESP的代码,这样就不是7字节了
2008-10-4 22:48
0
雪    币: 381
活跃值: (140)
能力值: ( LV13,RANK:330 )
在线值:
发帖
回帖
粉丝
39
有时候是该多往歪处想想,自己做题时就知道PUSH CALL,思维僵死
2008-10-4 22:52
0
雪    币: 2316
活跃值: (129)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
40
来晚了,学习...
2008-10-4 23:05
0
雪    币: 296
活跃值: (89)
能力值: ( LV15,RANK:340 )
在线值:
发帖
回帖
粉丝
41
刚才调试了一下,其实不用另外的代码回复ESP。注意到用的指令是XCHG,所以再执行一次就OK了
试着把返回地址改成XCHG的那句看看,WinExec的ret跳回交换指令,此时切换ESP,然后ret正常了。所以这段代码大有学问啊
2008-10-4 23:21
0
雪    币: 237
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
42
36楼: 这个7字节的, 如何填写返回地址,要去testfile里面查吗?
2008-10-4 23:26
0
雪    币: 108
活跃值: (141)
能力值: ( LV9,RANK:490 )
在线值:
发帖
回帖
粉丝
43
这个不顶不行,哈哈。
没想到用xchg
2008-10-4 23:42
0
雪    币: 296
活跃值: (89)
能力值: ( LV15,RANK:340 )
在线值:
发帖
回帖
粉丝
44
这个妙就妙在不用。具体看14楼后面的例子
2008-10-4 23:45
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
45
这样的 7 byte
  xchg [xxxxxxxx], esp
  ret

虽然可正常返回, 但[xxxxxxxx] 的内容已被更动, 无法二次调用.
所以说这到底值不值得冒险提交 ? 没人知道标准在那里.
2008-10-4 23:52
0
雪    币: 237
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
46
[QUOTE=sessiondiy;516814]这样的 7 byte
  xchg [xxxxxxxx], esp
  ret

虽然可正常返回, 但[xxxxxxxx] 的内容已被更动, 无法二次调用.
所以说这到底值不值得冒险提交 ? 没人知道标准在那里.[/QUOTE]

[xxxxxxxx] 二次调用值已变动 应该是重定位造成的。
所以 要填写返回值 7字节不够用。
2008-10-5 00:24
0
雪    币: 249
活跃值: (35)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
47
学习到了。。很好~!
2008-10-5 00:38
0
雪    币: 231
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
qdk
48
暴汗淋漓,虽然还是没有彻底理解

还是感觉这思维真是很开阔
2008-10-5 03:04
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
49
[QUOTE=ohho;516824][xxxxxxxx] 二次调用值已变动 应该是重定位造成的。
所以 要填写返回值 7字节不够用。[/QUOTE]

xchg [xxxxxxxx], esp 造成的
2008-10-5 10:05
0
游客
登录 | 注册 方可回帖
返回
//