汇编指令CALL的硬编码E8 和 JMP 的硬编码E9 后面参数的计算方法
试验的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 后面参数的计算方法相关推荐
- MIPS指令集处理器设计(支持64条汇编指令)
一.题目背景和意义 二.国内外研究现状 (略) 三.MIPS指令集处理器设计与实现 (一).MIPS指令集功能性梳理 1.MIPS指令集架构 (1).mips基础指令集格式总结 MIPS是(Micro ...
- 字典(汇编指令 INT 21H)
汇编指令 AAA 未组合的十进制加法调整指令 AAA(ASCII Adgust for Addition) 格式: AAA 功能: 对两个组合的十进制数相加运算(存在AL中)的结果进行调整,产生一个未 ...
- S5PV210体系结构与接口02:ARM编程模型 汇编指令
目录 1. ARM的基本设定 1.1 ARM数据类型 1.1.1 基本数据类型 1.1.2 浮点数据类型 1.1.3 存储器大小端 1.2 支持的指令集 2. Cortex-A8编程模型 2.1 处理 ...
- 小于等于0_从0开始学ARMARM汇编指令其实很简单
学习ARM,就必须要学习ARM指令,ARM指令是CPU提供给我们的接口,是我们打开CPU这个潘多拉魔盒的钥匙. ARM指令有很多,为了让大家能快速上手,一口君整理了一些对我们最有帮助的指令.keil软 ...
- x86与x86-64数据格式与常用的汇编指令笔记
1.数据格式 由于是从16位体系结构扩展成 32位的,Intel 用术语 "字(word)"表示16位数据类型.因此,称32位数为"双字(double words)&qu ...
- 机械指令 对应 汇编指令
操作数 意义 reg8 8位寄存器 reg8 8位寄存器 reg16 16位寄存器 mem8 8位内存数值 mem16 16位内存数值 immed8 8位立即数值 immed16 16位立即数值 li ...
- 安卓逆向:重温Thumb汇编指令细节
主要内容 1.Thumb指令集详解 2.Thumb直接访问的寄存器 3.Thumb指令集组成部分详解 4.Thumb和arm状态却换 5.Thumb的常见应用场景 1.Thumb指令集详解 •ARM处 ...
- ARM汇编指令立即数规范和判断
转载 :https://blog.csdn.net/yunfenglw/article/details/41621103 在ARM汇编的数据处理指令中经常会使用到常数,而ARM汇编中规定使用的常数必须 ...
- att格式汇编指令_ATT汇编语法简介
这里,我们介绍三种类型的ATT汇编指令操作数的表示方法,其中指令参考对应体系的指令集(ISA). 第一种类型是立即数(immediate),其书写方式是'$'后面跟一个用标准C表示法表示的整数,比如$ ...
- arm汇编指令详细整理及实例详解
目录 一.简介 二.ARM 汇编指令说明 2.1 32位数据操作指令 2.2 32位存储器数据传送指令 2.3 32位转移指令 2.4 其它32位指令 三.实例讲解 3.1 MRS 3.2 MSR 3 ...
最新文章
- listen函数的第二个参数_【图像处理】OpenCV系列十七 --- 几何图像变换函数详解(一)...
- 大数据是一座孤单的小岛
- linux内核链表分析
- opencv for linux mac,opencv for Java在MacOS 10.10安装
- JavaFX——JavaFX概览
- vba交付图表设计_您是在为交付目的而“设计”吗?
- 关于jTopo的引用
- 全网最新Spring Boot2.5.1整合Activiti5.22.0企业实战教程<UEL表达式篇>
- sql语句查询数据库中含有某字符串的表名
- 海量数据挖掘MMDS week1: Link Analysis - PageRank
- 面试小题,传入6返回9,传入9返回6
- ITU-R BT.2020
- android外接键盘,小米手机如何外接键盘
- win7 计算机和控制面板突然打不开,显示服务器运行失败
- 我在工作群和ChatGPT聊了会天,找到了升职加薪的新思路
- word里显示的这个向下箭头是什么意思
- 跟锦数学2017年上半年
- 解决电脑浏览器打不开网页问题
- Python绘图-怎么获取某个值在色带中对应的颜色
- exit status 1: ‘D:\Program’ �����ڲ����ⲿ���Ҳ���ǿ����еij��� ���������ļ���
热门文章
- matlab convexhull,使用convex_hull计算体积为0
- Chinese-ELECTRA ‘adam_m not found in checkpoint ‘
- MATLAB图像处理识别商品条形码、图像分割
- 想找个娇小可爱的女孩
- 根据qq宠物等级计算级别
- 明天9:00 | ECCV 2022 全球博士TalK——计算机视觉领域顶会
- FPGA中的乒乓操作
- WiFi、GNSS定位服务实战-OneOS位置服务组件(文末有礼品)
- 推荐中商品的热度时间衰减降权:牛顿冷却定律;贝叶斯平均
- python中lines是什么类型_python中write和writelines有什么区别