首页
社区
课程
招聘
[求助]一个小问题,希望不吝回答
发表于: 2008-9-20 14:41 5961

[求助]一个小问题,希望不吝回答

2008-9-20 14:41
5961
p131页:由于0x0a1a0002中包含一个字节的null,所以不能直接引用DWORD,必须用点心思构造出来
mov eax,0x0a1aff02
xor  ah,ah
push eax

push esp
push esp
lodsd
call eax

这前两句到底有什么用,和直接把0x0a1a0002有什么不同,谢谢大家

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 2056
活跃值: (13)
能力值: ( LV13,RANK:250 )
在线值:
发帖
回帖
粉丝
2
因为 0x0a1a0002 会导致生成的Shellcode中含有一个字节的0,在Exploit时会被strcpy截断,所以不能直接用 0x0a1a0002。
2008-9-22 09:58
0
雪    币: 206
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
谢谢回答,我的意思是mov eax,0x0a1aff02 ;  xor ah,ah 这两句究竟和直接用0x0a1a0002有什么不同,作用是什么?
2008-9-28 00:12
0
雪    币: 206
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
xor ah,ah结果不也是0吗,有什么不同
2008-9-28 00:18
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
5
00401248      B8 02FF1A0A   mov     eax, 0A1AFF02
0040124D      32E4          xor     ah, ah

0040124F      B8 02001A0A   mov     eax, 0A1A0002

你认为有什么不同 ?
(看机机码)

就是要避开 02001A0A
             ^^
           这个 00
2008-9-28 00:20
0
雪    币: 147
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
为什么不是0a1a0200呢,而0a1a0002在内存中是02001a0a,在sockaddr_in中头两个变量都是short类型的,这样sin_family就是0200=512,而不是02了
2011-1-12 18:29
0
游客
登录 | 注册 方可回帖
返回
//