一、原理

一个字节属于两条指令。

短跳转的指令机器码是 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,我们也可以使用条件跳转指令和别的寄存器。下面举一个更复杂的例子。

这段花指令也是可以添加到任意位置的。

花指令——多个指令共用字节相关推荐

  1. Java指令全集_Java的JVM字节码指令集详解

    本文详细介绍了如何使用javap查看java方法中的字节码.以及各种字节码的含义,并且配以完善的案例,一步步,从头到尾带领大家翻译javap的输出.在文末还附有JVM字节码指令集表. 本文不适合没有J ...

  2. 手机我的世界服务器系统指令,我的世界手机服务器花雨庭各种指令 | 手游网游页游攻略大全...

    发布时间:2017-06-04 下面小编为大家解析一下花雨庭生存服技能升级技巧是什么,相信有很多技巧知识也是你不知道的,那么就请大家一起来看看吧! 花雨庭生存服内含带技能系统 技能系统部分采用于MCM ...

  3. gx works怎么写入from指令_FANUC PMC 指令和应用

    1.顺序程序结束指令如END1.END2.END.2•定时器指令(TMR.TMRB)(1)可变定时器TMR:TMR指令的定时时间可通过PMC参数 进行更改.(2)固定定时器TMRB:TMRB的设定时间 ...

  4. 2020-12-4((ARM汇编)mov指令,LDR指令,LDR伪指令)

    首先说明一下 ARM是RISC("reduced instruction set computer",即"精简指令集计算机")结构 x86是CISC(" ...

  5. mo汇编指令_汇编指令大全

    一.数据传输指令 ─────────────────────────────────────── 它们在存贮器和寄存器.寄存器和输入输出端口之间传送数据. 1. 通用数据传送指令. MOV 传送字或字 ...

  6. Linux系统学习: 进程、重定向和管道指令:xargs 指令的作用是

    进程 为了弄清楚这节课程的内容,也就是管道,我们先来讨论一下进程. 我们知道,应用的可执行文件是放在文件系统里,把可执行文件启动,就会在操作系统里(具体来说是内存中)形成一个应用的副本,这个副本就是进 ...

  7. 【汇编语言】通用数据处理指令——算术运算类指令

    通用数据处理指令--算术运算类指令 文章目录 通用数据处理指令--算术运算类指令 一.状态标志 1.进位标志CF(Carry Flag) 2.溢出标志OF(Overflow Flag) 3.零标志ZF ...

  8. 汇编指令与Intrinsics指令的对应关系汇总

    汇编指令与Intrinsics指令的对应关系汇总 参考网址:https://software.intel.com/sites/landingpage/IntrinsicsGuide/ 1.赋值指令:m ...

  9. call指令和ret指令【笔记+详解】

    笔记目录 call指令和ret指令[笔记] 1 引子 2 call和ret的简单运用 3 call指令本质含义详解 4 ret指令 5 总结及汇编环境资源 call指令和ret指令[笔记] 1 引子 ...

  10. ARM指令——跳转指令

    目录 一.跳转指令 方式一:直接修改PC寄存器的值(不建议使用,需要自己计算目标指令的绝对地址) 方式二:不带返回的跳转指令,本质就是将PC寄存器的值修改成跳转标号下指令的地址 方式三:带返回的跳转指 ...

最新文章

  1. 只要做出角色3D模型,AI就能让它动起来!再也不怕3D动画拖更了丨SIGGRAPH 2020
  2. TypeScript - 不止稳,而且快
  3. 高并发编程-深入分析wait和sleep的区别并结合源码示例佐证
  4. MongoDB数据库安装与连接
  5. python 如何生成特定间隔数列?range()、numpy.arange()
  6. VB 6.0 计算鼠标的金额 字体
  7. python中print语句
  8. linux批量远程多服务器FTP并下载文件的脚本
  9. 众筹网站系统源码+手机端
  10. Redis与Memcached的对比
  11. Python自动对Word文件中Python程序进行着色
  12. BestCoder Round #75
  13. [Ruby] 类和容器
  14. 国药准字、药品本位码
  15. invalid operands to binary expression 二进制表达式的无效操作数
  16. 美国恐怖故事第一季/全集American Horror Story 1全迅雷下载
  17. 详解CSS中的百分号%设置
  18. vostro3470装win7_dell latitude3470怎么安装win7系统
  19. Bootstrap基本结构
  20. Hadoop2.x和3.x版本区别

热门文章

  1. Python语言学习之打印输出那些事:python输出图表和各种吊炸天的字符串或图画、版权声明(如README.md)等之详细攻略
  2. Python命令行解析:sys.argv[]函数的简介、案例应用之详细攻略
  3. Ubuntu:Ubuntu系统下在pycharm软件内配置anaconda环境(一张图轻松搞定!)
  4. Matlab:成功解决Function definition are not permitted at the prompt or scripts
  5. ML之XGBoost:XGBoost参数调优的优秀外文翻译—《XGBoost中的参数调优完整指南(带python中的代码)》(三)
  6. CV之IR:计算机视觉之图像检索(Image Retrieval)方向的简介、使用方法、案例应用之详细攻略
  7. Logstash 安装及简单实用(同步MySql数据到Elasticsearch)
  8. YARN中的失败分析
  9. HashSet源码分析 jdk1.6
  10. apply方法和call方法的详解2