首页
社区
课程
招聘
请问关于近距离call的问题
发表于: 2004-8-13 13:47 4654

请问关于近距离call的问题

2004-8-13 13:47
4654
书上说当call的距离离自己本身的地址很接近时它就相当于一个jmp,可小菜我百思不得其解为什么会这样,而且对这个call单步跳过会出现错误,只能进行单步跟进.
有哪位前辈能给小菜我讲一讲这到底是怎么回事?

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

收藏
免费 1
支持
分享
最新回复 (4)
雪    币: 279
活跃值: (375)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
2
找一个加壳软件跟一下就得了
2004-8-13 15:34
0
雪    币: 186
活跃值: (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
跟call本身没关系吧,近距离call就是新跳转的地址和现在的地址之间不超过128字节。
2004-8-13 17:06
0
雪    币: 234
活跃值: (104)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
call aa
......

aa:
pop xxx
......
2004-8-13 17:56
0
雪    币: 519
活跃值: (1223)
能力值: ( LV12,RANK:650 )
在线值:
发帖
回帖
粉丝
5
我简单说说:

CALL xxxxxx 时计算机的实际执行过程是 把当前EIP压栈,然后JMP xxxxxx ,等遇到RET,就把EIP出栈。于是就回来了。

像auser兄说的那样,CALL aa,然后再pop但不到EIP,于是程序继续执行像没事一样。而F10是要遇到RET才行的,这里却没有RET,所以会完蛋。

还有的用PUSH xxxx,RET构造JMP,也是同理。

看一些病毒教程,常用这种把戏。
2004-8-13 18:55
0
游客
登录 | 注册 方可回帖
返回
//