2 skylinelulu skylinelulu 于 2017.01.15 20:31 提问

汇编64位jmp相对地址的计算

在64位进程中,
origianl addr[7FFECA5C0C00]处有一条汇编语句是jmp xxxxxxxx,
通过此jmp语句要跳到target addr[8E3AA20000]中去,
那么这里的地址xxxxxxxx怎么计算?
现在的疑惑是两个64位地址前32位都不一样,最后怎么得出来一个32位的相对地址?
欢迎大家来讨论解答啊~

1个回答

dabocaiqq
dabocaiqq   2017.01.21 22:54
已采纳
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
x86/x64 Call Jmp 指令区别
转自:http://www.cnblogs.com/banchen/p/6709967.html  Call指令主要实现对一个函数的调用。Jmp指令主要实现地址的调转。   Call指令和Jmp指令的区别       1:Call指令和Jmp指令的机器码不同。     2:Call指令会对当前指令的下一条指令的地址进行压栈操作,来实现函数的返回。
hook模板x86/x64通用版(1)--x64下的jmp远跳、远call指令
我一直在寻找能用,通用,简短的x64远跳河远call指令 现在用的跟大家分享一下,哪位大牛有更好的希望可以指点一下。 还有pushad/popad在x64下有什么好的替代品么?求指点。 远跳: 代码: push 地址的低32位 mov dword ptr ss:[rsp+4],地址的高32位 ret 远call: 代码: call @next   //e8 00
JMP 地址计算
<br /> <br />在某些时候需要在代码中写入JMP指令<br />JMP 二进制 =E9<br />比如我要 JMP到  7777ABCD<br />貌似E9 后跟的是RVA<br />所以<br />目标地址=指令所在地址+指令长度+RVA<br />即如果在 00552df7处 要跳到7777ABCD<br />那么<br />RVA=7777ABCD-00552df7-5=77227DD1<br />即在00552df7处写入E977227DD1
64 位下 jmp 指令 Intel 与 AMD 的实现
64 位下 jmp 指令 Intel 与 AMD 的实现 mik (mik@mouseos.com) 今天我注意到了在 64 位模式下 far jmp 指令的 Intel 和 AMD 实现的一些差别,源于下面的指令:         jmp far [compatibility_pointer] compatibility_pointer:         dd c
JMP CALL 二进制指令计算公式
;示例一 CALL立即数 CALL后面跟一个32位立即数 ;=================================== 1 [bits 32] 2 test: 3 00000000 90
call jmp 与机器码
原文地址::http://sangguowei2002.blog.163.com/blog/static/3271332920132835138203/ 相关文章 1、call指令对应的机器码好象不对----http://bbs.csdn.net/topics/190109474 2、如何根据机器码来获得相应的汇编指令。主要是CALL指令不会----http://zhidao
汇编JMP语句 IP值和偏移量的问题。问题如下,我想知道IP值是怎么变化的。还有8086一条指令占个几字节啊
汇编JMP语句 IP值和偏移量的问题。问题如下,我想知道IP值是怎么变化的。还有8086一条指令占个几字节啊 2011-10-16 22:26干物虫子 | 分类:汇编语言 | 浏览404次 1:在0624单元内忧一条二字节JMP SHORT OBJ指令,如果其中偏移量是27H,则转向地址OBJ的值是多少? 2:有指令JMP NEAR PTR qus,一直指令在内存的偏移地址为100H,qu
汇编JMP寻址时short,near,far区别
jmp为无条件转移指令,可以只修改IP,也可以同时修改CS和IP。 jmp指令要给出两种信息: (1)转移的目的地址 (2)转移的距离(段间转移、段内转移、段内近转移) 不同的给出目的地址的方法,和不同的转移地址位置,对应有不同格式的jmp指令。 依据位移进行转移的jmp指令: 【1】jmp short 标号(转移标号处执行指令)          IP修改范围:-128~127,"
几种跳转指令和对应的机器码
几种跳转指令和对应的机器码 0xE8    CALL    后面的四个字节是地址 0xE9    JMP    后面的四个字节是偏移 0xEB    JMP    后面的二个字节是偏移 0xFF15    CALL    后面的四个字节是存放地址的地址 0xFF25    JMP    后面的四个字节是存放地址的地址 0x68    PUSH    后面的四
Jmp指令的格式
jmp就是跳到另一个地方那个去执行 There are several different encodings for jumps, but some of the most commonly used ones are PC-relative.1. That is, they encode the difference between the address of the targe