首页
社区
课程
招聘
代码怎么换算的呀?郁闷了~
发表于: 2004-8-30 21:49 4100

代码怎么换算的呀?郁闷了~

2004-8-30 21:49
4100
大家请看下面的两个代码,完全一样,只是地址不一样:
:0050DA25 E95372F9FF              jmp 004A4C7D
:0050A7E6 E95372F9FF              jmp 004A1A3E

上面的那个是用dasm反汇编工具,反汇编出来的,我不明白是:
E95372F9FF这代码,完全一样,但是后面的jmp 004A4C7D和jmp 004A1A3E就不一样了!

:0050DA25 E95372F9FF   jmp 004A4C7D

;0050A7E6 E992A4F9FF   jmp 004A4C7D

以上是一个人告诉我的,不知道这样修改对不对?但我就是不明白,他们是怎么换算的?前面的地址不一样,代码一样的,后面的调用地址就不一样了~

那位好心的帮帮我呀,他们怎么换算的~~感谢~~

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

收藏
免费 1
支持
分享
最新回复 (3)
雪    币: 519
活跃值: (1223)
能力值: ( LV12,RANK:650 )
在线值:
发帖
回帖
粉丝
2
JMP的机器码是按相对于这一句的偏移来算的,那两句的地址不同所以JMP的地址也不同啦,但你看他们的相对偏移是相同的
2004-8-30 22:51
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
谢谢回答,我只是不知道怎么算法?
:0050A7E6 E95372F9FF              jmp 004A1A3E

你是这个偏移地址,是怎么算出5372F9FF这个偏移地址的?前面这个E9是JMP的
机器码,后面这个5372F9FF我不知道是怎么算的,有个人说是这样算:
004A1A3E-0050A7E6+5这样,但我算出来的值不是这个5372F9FF呀?郁闷~~
2004-8-31 00:51
0
雪    币: 519
活跃值: (1223)
能力值: ( LV12,RANK:650 )
在线值:
发帖
回帖
粉丝
4
他说错了,是4A1A3E-50A7E6-5,也就是目的地址 - 该JMP指令的起始地址 - 该JMP指令的长度,这个结果就是FFF97253,低位在前倒过来看看是多少?:)

其实这个不用自己算的,有很多专门算JMP的工具,在HIEW里面修改时只要指明目的地址它也会自动算出来。
2004-8-31 09:10
0
游客
登录 | 注册 方可回帖
返回
//