几种跳转指令和对应的机器码

转载 2013年12月06日 11:12:04
几种跳转指令和对应的机器码

0xE8    CALL    后面的四个字节是地址

0xE9    JMP    后面的四个字节是偏移

0xEB    JMP    后面的二个字节是偏移

0xFF15    CALL    后面的四个字节是存放地址的地址

0xFF25    JMP    后面的四个字节是存放地址的地址


0x68    PUSH    后面的四个字节入栈

0x6A    PUSH    后面的一个字节入栈




shellcode跳转回原始OEP方法一


大部分人比较喜欢直接jmp跳转到原始oep,这时候一般都用e9跳转,e9后面的四个字节是一个偏移地址。

计算公式: 偏移地址 = 目的地址 - 跳转基地址(jmp的下一条指令的地址)

也就是 原始OEP - jmp的下一条指令的地址

    db    0e9h        ;这是jmp
OEPOffs:
    dd    ?        ;这里是4个字节 未初始化


偏移地址 = 原始OEP - (offset OEPOffs + 4)  为什么+4 因为OEPOffs标号向后偏移4个字节 才是jmp的下一条指令地址  也就是跳转基地址



shellcode跳转回原始OEP方法二

有些人用 push oep然后jmp dword ptr [esp]的方法跳回原始oep,这时候shellcode要这样写:

    db    68h
OEP:
    dd    ?
    jmp dword ptr [esp]

68h是 push后面四个字节的意思  dd ? 声明了四个字节,然后通过OEP标号,定位到这个位置,然后把原始OEP写进去就可以了

jmp指令对应的机器码

od随便打开一个记事本,汇编几条jmp指令,可以看到如下 地址           HEX              反汇编 010073B4     - E9 7B9E8787      JMP...
  • whatday
  • whatday
  • 2015年07月31日 16:31
  • 1955

随笔三十三:跳转指令及其编码

跳转指令有两种跳转方式:        1)直接跳转 。即跳转目标是作为指令的一部分编码的;        2)间接跳转。即跳转目标是从寄存器或存储器位置中读出的。         ...
  • HMSIWTV
  • HMSIWTV
  • 2012年07月16日 15:05
  • 845

ff 15 调用函数与e8调用函数的区别 call的两种二进制命令

ff 15 和e8都是用来调用函数的机器码,看一个例子:218 f9ebc53a 6a00                  push    0218 f9ebc53c ff1500c9ebf9   ...
  • wangfaqiang
  • wangfaqiang
  • 2011年04月02日 20:09
  • 3129

跳转指令及其编码

程序按照顺序执行指令 而c语言中控制流程有顺序,分支,循环三种 汇编中跳转指令会导致执行切换到程序中一个全新的位置,也就是说跳转可以产生c语言的分支和循环两种  一个 为跳转后一部分不在执行 或者再跳...
  • qq_34717555
  • qq_34717555
  • 2017年09月02日 01:03
  • 101

thumb长跳转指令(BL)机器码详解

最近因为工作的原因,经常接触到长跳转指令,但是总是弄不明白,跳转的目标地址怎么得来的 经过多方面的资料查找,和自己的反复推算,现在总算弄明白了 先上例子: 下面是几个实际遇到的机器码机器对应的反汇编 ...
  • zerglurker
  • zerglurker
  • 2014年09月21日 13:47
  • 1700

汇编指令和机器码的对应表

一、汇编速查          MOV   AA,BB         将   BB   放到   AA   里          CALL                   调用子程序   (...
  • zhou191954
  • zhou191954
  • 2014年06月16日 09:57
  • 3473

汇编指令和机器码的对应表

一、汇编速查          MOV   AA,BB         将   BB   放到   AA   里          CALL                   调用子程序   (...
  • judyge
  • judyge
  • 2014年11月16日 12:29
  • 334

汇编指令对应机器码表

最近很多发帖求助机器码与汇编指令对应的问题,所以自己索性就把资料直接贴出来了,大家都可以看到,因为汇编教科书里面没有说到此点,大家想了解就细细琢磨一下把! 一、状态寄存器 PSW(Pr...
  • GLGoober
  • GLGoober
  • 2017年03月05日 08:45
  • 639

机器码与汇编指令的对应关系(兼议好问题怎么成了傻问题)

【学生】老师啊~您现在忙吗?有点问题问一下……【迂者】直接说【学生】 B8代表的是 ax吗?【迂者】 B82301完整的是一条3字节的指令 B8是操作码,内含了第一个操作数ax【学生】那 ...
  • sxhelijian
  • sxhelijian
  • 2017年03月09日 20:49
  • 1230

汇编指令和机器码的对应表

一、状态寄存器 PSW(Program Flag)程序状态字寄存器,是一个16位寄存器,由条件码标志(flag)和控制标志构成,如下所示: 15 14 13 12 11 10 9 8 7 ...
  • judyge
  • judyge
  • 2014年11月16日 12:56
  • 422
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:几种跳转指令和对应的机器码
举报原因:
原因补充:

(最多只允许输入30个字)