首页
社区
课程
招聘
[求助]书中的小问题,请求帮忙
2008-5-3 18:35 6504

[求助]书中的小问题,请求帮忙

2008-5-3 18:35
6504
P100的那个“shellcode的加载与调试”节中,给出的shellcode的第一句不太理解。

char box_popup[]=
"\x66\x81\xEC\x40\x04"    //SUB SP,400     
……下面的省略

我就是不理解SUB SP,400是做什么用的。

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

收藏
点赞0
打赏
分享
最新回复 (7)
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
寂寞hacker 2008-5-4 23:03
2
0
抬高栈顶,避免SHELLCODE被破坏!
雪    币: 151
活跃值: (24)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
jesterjy 1 2008-5-5 10:15
3
0
抬高栈顶的话,为什么不是sub esp,400???
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
寂寞hacker 2008-5-5 12:56
4
0
sp是8086下的,80X86用esp
雪    币: 151
活跃值: (24)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
jesterjy 1 2008-5-5 13:10
5
0
是呀,我知道啊!
就是问为什么使用的是8086下的指令啊?
雪    币: 2071
活跃值: (77)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
sessiondiy 4 2008-5-5 13:40
6
0
省一点用
sub esp,440 要 6 个 Byte
sub sp,440  要 5 个 Byte
雪    币: 2041
活跃值: (261)
能力值: (RANK:330 )
在线值:
发帖
回帖
粉丝
failwest 8 2008-5-6 21:09
7
0
恩,楼上说的很对,看看那张最后一节,精挑细选短指令是也,是为了省一个字节的机器码
同样mov eax有可能只写成mov al之类的
雪    币: 540
活跃值: (216)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
chuxuezhe 2012-1-14 10:20
8
0
呵呵,看了帖子有收获。
3楼兄弟的问题开始我也有同感,后来想了想,是我们自己把思维禁锢了,有时候会觉得80x86中只能用eax,ebx...等e打头的寄存器,其实不然。处理器和指令系统是向下兼容的。当然可以用eax,也可以用ax,也可以用al,ah等等。

一点感想,立此存照

向各位兄弟学习
游客
登录 | 注册 方可回帖
返回