跳转指令公式计算

x86

  • JMP计算公式
  •    目标地址-当前地址-5 = 机器码E9后面所跟的32位数
  • JE计算公式
  •    目标地址-当前地址-6 = 机器码0F 84后面所跟的32位数
  • JNE计算公式
  •    目标地址-当前地址-6 = 机器码0F 85后面所跟的32位数
  • CALL计算公式
  •    目标地址-下条指令的地址=机器码E8后面所跟的32位数  ret十六进制码 C3

x64

      jmp计算公式

             1 第一种方法 jmp qword ptr[ 保存目标地址的指针地址]

             保存目标地址的指针地址-下条指令的地址= 特征码 FF 25 后面跟着的32位数  

                 (注意保存目标地址的指针地址 和 下条指令地址 都必须在一个PE段(section)) 而且  保存目标地址的指针地址 必须在 下条指令的地址下面

                  计算下条指令方法就是 FF 25 32位数 总共 六个字节

                  保存目标地址的指针地址 必须是 八个字节

                  总共 14 个字节

             2  第二种方法

               push r15

                    mov r15, 目标地址

                    jmp r15    

                   到目标地址一系列操作后 还原 r15 pop               

               pop r15 

            3 第三种方法

                mov r15,目标地址

                push r15

                ret

 

             个人建议 使用 第一种方法

 

转载于:https://www.cnblogs.com/kuangke/p/5480987.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值