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

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

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

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

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

先谢谢了~~!

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

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

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

这里出现了00字节

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

所以就不是用PUSH 0这样的操作码了
2010-7-13 09:17
0
游客
登录 | 注册 方可回帖
返回
//