首页
社区
课程
招聘
一个值得注意的问题:关于硬件对编程的影响
发表于: 2004-12-31 14:37 4238

一个值得注意的问题:关于硬件对编程的影响

2004-12-31 14:37
4238
在给VProtector除BUG的过程中发现了硬件的一个特点,想写出来给大家知道,免得以后有朋友因为这方面的问题阻碍了软件开发的过程

inter的CPU在从P4开始,cpu指令的调用有个细节和以往的cpu不一样,
我们在调用函数的时候 一般的流程是:

push 下个指令的地址
jmp  目标函数

而P4的cpu的过程不一样,调用过程如下:

jmp  目标函数
push 下个指令的地址

我们在设计利用堆栈执行指令的时候必须注意这个细节,比如call esp必须
要针对当前cpu的特点定位esp

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

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 260
活跃值: (162)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
对付这样的解决办法也找到
我发现 call [esp] 不会存在这样的问题
2004-12-31 14:45
0
雪    币: 116
活跃值: (220)
能力值: ( LV12,RANK:370 )
在线值:
发帖
回帖
粉丝
3
想验证一下, 但没有p4的机器

估计你的VProtector的Bug快除了吧...期待
2004-12-31 14:47
0
雪    币: 260
活跃值: (162)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
恩 解决是时间的问题  代码我全部重写  估计2天左右时间把
2004-12-31 14:50
0
雪    币: 260
活跃值: (162)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
估计新的cpu这种方式的转变是为了防止以前的很多缓冲区溢出代码的执行的  因为这样的话以前老的溢出代码不会调用设计时候设定的地址了
2004-12-31 14:55
0
雪    币: 241
活跃值: (21)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
6
hehe,和当初IPB的某个CRACKME的某个版本一样。如果要正确分析那个CRACKME就得先找台P4机器。
2004-12-31 19:49
0
雪    币: 254
活跃值: (126)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
7
P3上用call esp没发现问题
2005-1-1 03:41
0
雪    币: 260
活跃值: (162)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
8
老的CPU上面执行call esp的过程:

假如 esp = 401000
那么 call esp 将会调用 400ffc处的代码  因为cpu首先将返回地址压栈入400ffc处 再进入esp的地址

P4的运行情况恰恰相反 调用的始终使esp处的代码
2005-1-1 07:03
0
雪    币: 213
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
好像很久以前在哪里看过
2005-1-1 14:17
0
游客
登录 | 注册 方可回帖
返回
//