试验的C函数代码如下:

#include <stdio.h>
void function()
{printf("hello");
}int main(int argc,char* argv[])
{function();return 0;
}

反汇编后的代码如下

call 硬编码是E8 , 但是后面的 1E B3 FF FF 是怎么计算出来的呢?

E8 后面的硬编码计算公式如下

假设我们需要获得E8 后面的硬编码为X
X=真正要跳转的地址-E8这条指令的下一行地址
X=047163Bh-0047631D
X=FF FF B3 1E
转换一下 低位在前高位在后就获得了硬编码 1E B3 FF FF

JMP 硬编码E9 后面的参数计算方法和CALL是一样的

下图是用计算器16进制计算出的结果截图

继续研究*******************************

下一条指令地址的获取方法

E8 这条指令固定 是 5个字节组成, 当前这条E8指令的地址加5个字节就是下一条指令的地址
下一条指令地址=当前E8指令地址+5
下一条指令地址=00476318+5
下一条指令地址=0047631D

硬编码的公式就可以修改成为如下

X=真正要跳转的地址-(E8这条指令的地址+5)
X=047163B-(0476318+5)

注意

E8这条指令的地址是 ImageBuffer拉伸后的地址,而且是系统加载到内存运行时的虚拟地址
要计算ImageBase +E8所在的偏移地址

汇编指令CALL的硬编码E8 和 JMP 的硬编码E9 后面参数的计算方法相关推荐

  1. MIPS指令集处理器设计(支持64条汇编指令)

    一.题目背景和意义 二.国内外研究现状 (略) 三.MIPS指令集处理器设计与实现 (一).MIPS指令集功能性梳理 1.MIPS指令集架构 (1).mips基础指令集格式总结 MIPS是(Micro ...

  2. 字典(汇编指令 INT 21H)

    汇编指令 AAA 未组合的十进制加法调整指令 AAA(ASCII Adgust for Addition) 格式: AAA 功能: 对两个组合的十进制数相加运算(存在AL中)的结果进行调整,产生一个未 ...

  3. S5PV210体系结构与接口02:ARM编程模型 汇编指令

    目录 1. ARM的基本设定 1.1 ARM数据类型 1.1.1 基本数据类型 1.1.2 浮点数据类型 1.1.3 存储器大小端 1.2 支持的指令集 2. Cortex-A8编程模型 2.1 处理 ...

  4. 小于等于0_从0开始学ARMARM汇编指令其实很简单

    学习ARM,就必须要学习ARM指令,ARM指令是CPU提供给我们的接口,是我们打开CPU这个潘多拉魔盒的钥匙. ARM指令有很多,为了让大家能快速上手,一口君整理了一些对我们最有帮助的指令.keil软 ...

  5. x86与x86-64数据格式与常用的汇编指令笔记

    1.数据格式 由于是从16位体系结构扩展成 32位的,Intel 用术语 "字(word)"表示16位数据类型.因此,称32位数为"双字(double words)&qu ...

  6. 机械指令 对应 汇编指令

    操作数 意义 reg8 8位寄存器 reg8 8位寄存器 reg16 16位寄存器 mem8 8位内存数值 mem16 16位内存数值 immed8 8位立即数值 immed16 16位立即数值 li ...

  7. 安卓逆向:重温Thumb汇编指令细节

    主要内容 1.Thumb指令集详解 2.Thumb直接访问的寄存器 3.Thumb指令集组成部分详解 4.Thumb和arm状态却换 5.Thumb的常见应用场景 1.Thumb指令集详解 •ARM处 ...

  8. ARM汇编指令立即数规范和判断

    转载 :https://blog.csdn.net/yunfenglw/article/details/41621103 在ARM汇编的数据处理指令中经常会使用到常数,而ARM汇编中规定使用的常数必须 ...

  9. att格式汇编指令_ATT汇编语法简介

    这里,我们介绍三种类型的ATT汇编指令操作数的表示方法,其中指令参考对应体系的指令集(ISA). 第一种类型是立即数(immediate),其书写方式是'$'后面跟一个用标准C表示法表示的整数,比如$ ...

  10. arm汇编指令详细整理及实例详解

    目录 一.简介 二.ARM 汇编指令说明 2.1 32位数据操作指令 2.2 32位存储器数据传送指令 2.3 32位转移指令 2.4 其它32位指令 三.实例讲解 3.1 MRS 3.2 MSR 3 ...

最新文章

  1. listen函数的第二个参数_【图像处理】OpenCV系列十七 --- 几何图像变换函数详解(一)...
  2. 大数据是一座孤单的小岛
  3. linux内核链表分析
  4. opencv for linux mac,opencv for Java在MacOS 10.10安装
  5. JavaFX——JavaFX概览
  6. vba交付图表设计_您是在为交付目的而“设计”吗?
  7. 关于jTopo的引用
  8. 全网最新Spring Boot2.5.1整合Activiti5.22.0企业实战教程<UEL表达式篇>
  9. sql语句查询数据库中含有某字符串的表名
  10. 海量数据挖掘MMDS week1: Link Analysis - PageRank
  11. 面试小题,传入6返回9,传入9返回6
  12. ITU-R BT.2020
  13. android外接键盘,小米手机如何外接键盘
  14. win7 计算机和控制面板突然打不开,显示服务器运行失败
  15. 我在工作群和ChatGPT聊了会天,找到了升职加薪的新思路
  16. word里显示的这个向下箭头是什么意思
  17. 跟锦数学2017年上半年
  18. 解决电脑浏览器打不开网页问题
  19. Python绘图-怎么获取某个值在色带中对应的颜色
  20. exit status 1: ‘D:\Program’ �����ڲ����ⲿ���Ҳ���ǿ����еij��� ���������ļ���

热门文章

  1. matlab convexhull,使用convex_hull计算体积为0
  2. Chinese-ELECTRA ‘adam_m not found in checkpoint ‘
  3. MATLAB图像处理识别商品条形码、图像分割
  4. 想找个娇小可爱的女孩
  5. 根据qq宠物等级计算级别
  6. 明天9:00 | ECCV 2022 全球博士TalK——计算机视觉领域顶会
  7. FPGA中的乒乓操作
  8. WiFi、GNSS定位服务实战-OneOS位置服务组件(文末有礼品)
  9. 推荐中商品的热度时间衰减降权:牛顿冷却定律;贝叶斯平均
  10. python中lines是什么类型_python中write和writelines有什么区别