花指令——多个指令共用字节
一、原理
一个字节属于两条指令。
短跳转的指令机器码是 EB XX,XX是指跳转位置到JMP指令的下一条指令的偏移,例如 EB 00 就是跳转到JMP 的下一条指令,相当于啥也不做,如图:
那么如果是 EB FF ,就会跳转到JMP指令本身的第二字节:
对于这个特性,稍加利用,可以编写出这样的代码:
跳转执行后,跳到JMP第二字节,FF C0 被识别成 INC EAX,48 被识别成 DEC EAX,执行后反汇编的结果如下:
这就是无效汇编指令的原理,EB FF C0 48 这段硬编码可以添加到程序的任何地方,我们来看看效果:
二、演示
IDA PRO 7.5 无法处理这种情况。
可以发现使用这种花指令并不是一种非常敏感的操作,可以放心大胆地用。报毒的这两个引擎可以无视,乱来的,helloworld都报毒的。尤其是那个 yande 什么的,名字就长得像个黄色网站。
三、另一个例子
除了jmp,我们也可以使用条件跳转指令和别的寄存器。下面举一个更复杂的例子。
这段花指令也是可以添加到任意位置的。
花指令——多个指令共用字节相关推荐
- Java指令全集_Java的JVM字节码指令集详解
本文详细介绍了如何使用javap查看java方法中的字节码.以及各种字节码的含义,并且配以完善的案例,一步步,从头到尾带领大家翻译javap的输出.在文末还附有JVM字节码指令集表. 本文不适合没有J ...
- 手机我的世界服务器系统指令,我的世界手机服务器花雨庭各种指令 | 手游网游页游攻略大全...
发布时间:2017-06-04 下面小编为大家解析一下花雨庭生存服技能升级技巧是什么,相信有很多技巧知识也是你不知道的,那么就请大家一起来看看吧! 花雨庭生存服内含带技能系统 技能系统部分采用于MCM ...
- gx works怎么写入from指令_FANUC PMC 指令和应用
1.顺序程序结束指令如END1.END2.END.2•定时器指令(TMR.TMRB)(1)可变定时器TMR:TMR指令的定时时间可通过PMC参数 进行更改.(2)固定定时器TMRB:TMRB的设定时间 ...
- 2020-12-4((ARM汇编)mov指令,LDR指令,LDR伪指令)
首先说明一下 ARM是RISC("reduced instruction set computer",即"精简指令集计算机")结构 x86是CISC(" ...
- mo汇编指令_汇编指令大全
一.数据传输指令 ─────────────────────────────────────── 它们在存贮器和寄存器.寄存器和输入输出端口之间传送数据. 1. 通用数据传送指令. MOV 传送字或字 ...
- Linux系统学习: 进程、重定向和管道指令:xargs 指令的作用是
进程 为了弄清楚这节课程的内容,也就是管道,我们先来讨论一下进程. 我们知道,应用的可执行文件是放在文件系统里,把可执行文件启动,就会在操作系统里(具体来说是内存中)形成一个应用的副本,这个副本就是进 ...
- 【汇编语言】通用数据处理指令——算术运算类指令
通用数据处理指令--算术运算类指令 文章目录 通用数据处理指令--算术运算类指令 一.状态标志 1.进位标志CF(Carry Flag) 2.溢出标志OF(Overflow Flag) 3.零标志ZF ...
- 汇编指令与Intrinsics指令的对应关系汇总
汇编指令与Intrinsics指令的对应关系汇总 参考网址:https://software.intel.com/sites/landingpage/IntrinsicsGuide/ 1.赋值指令:m ...
- call指令和ret指令【笔记+详解】
笔记目录 call指令和ret指令[笔记] 1 引子 2 call和ret的简单运用 3 call指令本质含义详解 4 ret指令 5 总结及汇编环境资源 call指令和ret指令[笔记] 1 引子 ...
- ARM指令——跳转指令
目录 一.跳转指令 方式一:直接修改PC寄存器的值(不建议使用,需要自己计算目标指令的绝对地址) 方式二:不带返回的跳转指令,本质就是将PC寄存器的值修改成跳转标号下指令的地址 方式三:带返回的跳转指 ...
最新文章
- 只要做出角色3D模型,AI就能让它动起来!再也不怕3D动画拖更了丨SIGGRAPH 2020
- TypeScript - 不止稳,而且快
- 高并发编程-深入分析wait和sleep的区别并结合源码示例佐证
- MongoDB数据库安装与连接
- python 如何生成特定间隔数列?range()、numpy.arange()
- VB 6.0 计算鼠标的金额 字体
- python中print语句
- linux批量远程多服务器FTP并下载文件的脚本
- 众筹网站系统源码+手机端
- Redis与Memcached的对比
- Python自动对Word文件中Python程序进行着色
- BestCoder Round #75
- [Ruby] 类和容器
- 国药准字、药品本位码
- invalid operands to binary expression 二进制表达式的无效操作数
- 美国恐怖故事第一季/全集American Horror Story 1全迅雷下载
- 详解CSS中的百分号%设置
- vostro3470装win7_dell latitude3470怎么安装win7系统
- Bootstrap基本结构
- Hadoop2.x和3.x版本区别
热门文章
- Python语言学习之打印输出那些事:python输出图表和各种吊炸天的字符串或图画、版权声明(如README.md)等之详细攻略
- Python命令行解析:sys.argv[]函数的简介、案例应用之详细攻略
- Ubuntu:Ubuntu系统下在pycharm软件内配置anaconda环境(一张图轻松搞定!)
- Matlab:成功解决Function definition are not permitted at the prompt or scripts
- ML之XGBoost:XGBoost参数调优的优秀外文翻译—《XGBoost中的参数调优完整指南(带python中的代码)》(三)
- CV之IR:计算机视觉之图像检索(Image Retrieval)方向的简介、使用方法、案例应用之详细攻略
- Logstash 安装及简单实用(同步MySql数据到Elasticsearch)
- YARN中的失败分析
- HashSet源码分析 jdk1.6
- apply方法和call方法的详解2