Linux中jmp指令,jmp指令对应的机器码
短跳转和近跳转指令中包含的操作数都是相对于(E)IP的偏移,而远跳转指令中包含的是目标的绝对地址,所以短/近跳转会出现跳至同一目标的指令机器码不同,不仅会不同,而且应该不同。而远跳转中包含的是绝对地址,因此转移到同一地址的指令机器码相同
绝对跳转/调用指令中的内存操作数必须以’*’为前缀,否则gas总是认为是相对跳转/调用指令,而且gas汇编程序自动对跳转指令进行优化,总是使用尽可能小的跳转偏移量。如果8比特的偏移量无法满足要求的话,as会使用一个32位的偏移量,as汇编程序暂时还不支持16位的跳转偏移量,所以对跳转指令使用’addr16’前缀是无效的。还有一些跳转指令只支持8位的跳转偏移量,这些指令是:’jcxz’,’jecxz’,’loop’,’loopz’,’loope’,’loopnz’’loopne’如果你在汇编中使用了这些指令,用gas的汇编可能会出错,因为gcc在编译过程中不产生这些指令,所以在c语言中不必担心这些问题。
ffffffff88873036 e8 ff ff 5f c6 => call XX // e8 = callffffffff8887303a ......
相当于:目标地址 - ffffffff8887303a(RIP, 指向下一条指令) = ffffffffffff5fc6 (这个是负数,以补码形式展示)
所以: 目标地址 = ffffffff88869000
即: ffffffff88869000 - ffffffff8887303a + ffffffffffffffff + 1 = ffffffffffff5fc6
可以用 unsigned long 类型来计算,让它自然溢出就好了,(unsigned long)func1 - ((unsigned long)func2 + 0x偏移)
先计算好偏移,再替换call地址,就偷偷的改了调用。
附:若为e8 00 00 00 00 则可以同过模块读取 00 00 00 00 的实际值
Linux中jmp指令,jmp指令对应的机器码相关推荐
- linux点亮硬盘locat,Linux中常用的查询指令(which、whereis、find、locatae)
我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索: Which 查看可执行文件的位置. whereis 查看文件的位置. locate 配合数据库查看文件位置 ...
- linux中gcc是什么指令,Linux gcc常用命令
gcc的编译过程分为四个过程,即预处理(也称预编译,Preprocessing).编译(Compilation).汇编 (Assembly)和连接(Linking). 例如,编译文件test.c,那么 ...
- Linux中常用的操作指令(随时更新)
注:本文的所有内容都来源于网络,是本人再使用过程中遇到的一些不太常用.经常忘记的指令,出处太分散,无法标注.如有问题,请在下方留言,本人会及时更正或删除.谢谢! CentOS 防火墙放开端口 #sud ...
- linux中php是什么指令,什么是linux命令
linux命令是对Linux系统进行管理的命令.对于Linux系统来说,无论是中央处理器.内存.磁盘驱动器.键盘.鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心,与之前的DOS命 ...
- Linux中nginx的常见指令
1.启动 cd /usr/local/nginx sbin/nginx 版权声明:本文为博主原创文章,未经博主允许不得转载. 原文地址: https://www.cnblogs.com/poterli ...
- Linux中source是什么指令?
命令用法: source FileName 作用:在当前bash环境下读取并执行FileName中的命令. 注:该命令通常用命令"."来替代. 如:source /etc/prof ...
- Linux系统 (二)- 指令学习2
~~~~ 前言 mkdir 基本语法 选项 -p rmdir 基本语法 -p选项 rm 基本语法 选项 -r 选项 -f 选项 -i stat man 基本语法 在线手册介绍 选项 number 选项 ...
- Linux内核学习笔记——Linux中的用户组和权限管理(UID是什么?)
目录 一.背景 进程权限 最小权限原则 二.linux系统安全模型 用户 用户组 用户和组的关系 安全上下文 进程的用户ID 函数setreuid和setregid 函数seteuid和setegid ...
- Linux中计算特定CPU使用率
Linux中计算特定CPU使用率 需求 解决方案 拓展 参考 需求 在Linux中可以通过top指令查看某一进程占用的CPU情况,也可以查看某一个CPU使用率情况(先top指令,然后按数字" ...
- Linux中rz -y命令和rz -E命令的区别
把文件上传到Linux中可以用rz指令,一般小文件我们都是用rz -y来进行上传文件,除此之外还可以用rz -E. 我是用的xshell6来链接Linux的,通常手敲指令都是用rz -y,另外还可以直 ...
最新文章
- 关于使用asp.net调试器出现的问题及相关解决方法
- 33个优秀的 jQuery 图片展示插件分享
- php将get传参解析成数组,php解析url (parse_url) 参数成数组 (parse_str)
- 可以获得索引值码_SEO优化细节,怎样优化才能让网站获得更好的排名?
- c mysql分页存储过程_mysql 分页存储过程调用报错
- java web流量阀值_Javaweb应用使用限流处理大量的并发请求详解
- python中debug和run有什么区别_android应用程序开发中run和debug 有什么区别?
- 简单谈谈MySQL优化利器-慢查询
- 手机能打开的表白代码_不是程序员都能学会的5个表白代码,一学就会,附源码...
- 最新微信公众平台源码
- DT741-csf联通创维光猫桥接模式+华为WS5200路由器拨号设置
- 仙人掌之歌——路转峰回(1)
- Spring Cloud (四):断路器(Hystrix)
- es管理器免root_国产应用也强大 ES文件浏览器增加ROOT管理
- UML工具Visual Paradigm最新版本16.2发布
- Linux——超超讲解SSH的原理与SSH的实现!建议收藏❤
- 特斯拉又撞“人”了 汽车激光雷达“盛宴”开启
- python-selenium学习笔记:运用验证码过滤登陆,验证是否登陆成功
- 基于GAN的图像修复--论文笔记
- python字符串类型判断(python中datatype()测试字符串类型)
热门文章
- FH6908A负极关断同步整流模拟低压降二极管控制IC芯片TSOT23-6超低功耗整流器 1w功耗 <100uA静态 替代MP6908
- 纯CSS3实现动画—奔跑的北极熊
- 62之内的进制任意转换
- 720phi10p 和 720p有什么区别_新电脑明明是高清屏为什么有些页面显示模糊
- 芯海科技、芯原科技数字IC
- 详解文本文件和二进制文件区别
- 分立器件测试仪系统Si.SiC.GaN 材料 IGBT.Mosfet.Diode.BJT......
- 软件工程复习重点知识
- 正则表达式、正则函数、包的导入
- [jenkins]-批量修改配置的插件 Configuration Slicing Plugin