首页
社区
课程
招聘
[求助]在看软件漏洞分析入门的帖子,有句话没明白请高手帮忙解释下3Q……
2010-7-6 11:29 9210

[求助]在看软件漏洞分析入门的帖子,有句话没明白请高手帮忙解释下3Q……

2010-7-6 11:29
9210
是这篇http://bbs.pediy.com/showthread.php?t=56656文章中的下面这段话~

XOR EBX,EBX  
;压入NULL结尾的”failwest”字符串。
之所以用EBX清零后入栈做为字符串的截断符,是为了避免“PUSH 0”中的NULL,否则植入的机器码会被strcpy函数截断。

请问“是为了避免“PUSH 0”中的NULL”这句是什么意思?
它与 XOR EBX,EBX有什么不同?

先谢谢了~~!

[CTF入门培训]顶尖高校博士及硕士团队亲授《30小时教你玩转CTF》,视频+靶场+题目!助力进入CTF世界

收藏
点赞0
打赏
分享
最新回复 (7)
雪    币: 195
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
大嘴呀呀 2010-7-6 12:04
2
0
我顶~~帮忙解释下吧
雪    币: 230
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
南方失败 2010-7-6 12:28
3
0
strcpy是以NULL为结束识别。遇到这个就结束
雪    币: 224
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
笨l笨 2010-7-6 12:47
4
0
字符串是以\0结尾的。
XOR EBX,EBX清零,替代push 0
没有出现截断符
雪    币: 195
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
大嘴呀呀 2010-7-6 13:25
5
0
谢谢大家~ 但是我想知道 “PUSH 0”中的NULL 这句怎么理解?
雪    币: 195
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
大嘴呀呀 2010-7-6 15:41
6
0
我晕,是push 0这个指令本身机器码就等于NULL……
雪    币: 88
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
gezz 2010-7-12 00:32
7
0
PUSH 0就是放一个NULL 去堆栈里面  在C中间0 == NULL
雪    币: 21
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
pende 1 2010-7-13 09:17
8
0
我的理解是这样的

PUSH 0 对应的机器码是 6A 00

这里出现了00字节

本着尽量控制Shellcode中00字节出现的原则

所以就不是用PUSH 0这样的操作码了
游客
登录 | 注册 方可回帖
返回