关于 汇编时的跳转问题

来源:百度知道 编辑:UC知道 时间:2024/05/17 05:23:16
我用OD载入程序
有这么一段
0040456A 74 36 je short 004045A2
0040456C A1 90664000 mov eax, dword ptr [406690]
00404571 50 push eax
00404572 A1 8C664000 mov eax, dword ptr [40668C]
00404577 E8 20EEFFFF call 0040339C
我想把这段跳转到0区域 然后在 00404577 处跳回来
0区域是 0040470A 0000 add byte ptr [eax], al
我在0区域输入 je short 004045A2时
提示: 相对跳转超出范围,使用 JE LONG 格式
这是什么问题 有谁能回答我下吗
我想在0区域 输入 je short 004045A2
有办法吗 怎么解决??
谢谢!
当我输入JE LONG 004045A2时
汇编就变成了 JE 004045A2
我见程序里有许多 je short类型 不知道怎么回事
迷糊

把JESHOR改为je就是了。

0区域?
不行你找其他空的地址好了,最好也是代码段的,不然要被DEP

那是16位程序留下来的问题
在16程序中存在远跳转的问题
如:call ES:1245H
那样的话,CS也要入栈
而:CALL S只要IP进栈则可

显然,后面那种方法不怎么远...

你那软件可能是这样类似区分的

看不出来那里有问题