汇编学习笔记:对抗反汇编实验2019092801

  • 实验描述
  • 实验环境
  • 实验过程
  • 实验结论

实验描述

使用相连的jz和jnz指令跳转到紧接着jnz指令的call指令的第二个字节。call指令实际上无效。验证ida在反汇编时会识别出call指令。

实验环境

操作系统:windows 7(安装于virtualbox中的虚拟机)
代码编辑器:sublime text 3
编译器:masm32
调试、反汇编工具:ollydbg,ida pro 6.8

实验过程

实验用的汇编代码如下(其中e8h即为call指令的机器码):

使用masm32编译器进行编译、链接:

使用ollydbg调试编译所得的可执行文件,发现od将伪call指令识别位字节数据e8h,也即od不受此迷惑:

使用ida进行反汇编,可看到ida将紧随jnz指令的数据反汇编为call指令,call的操作数被标为红色:

在ida中使用d键将00401004h的位置显示为字节数据,再用c键将跳转目标位置的数据解析为汇编指令:

实验结论

虽然实验中使用的这种对抗反汇编方法会让ida误解析(od则不会),但好在ida用特异颜色在有疑问处做了标记(为什么e8h后面的双字数据会被标红,原因还待解),可以依次判断反汇编代码存在的问题。

汇编学习笔记:对抗反汇编实验2019092801相关推荐

  1. STM32学习笔记:按键实验

    STM32学习笔记:按键实验 一.所使用的函数 1.时钟使能函数 RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState New ...

  2. 汇编学习笔记——汇编指令

    目录 汇编指令 nop指令 mov.add.sub指令 adc.sbb指令 and.or指令 移位指令 逻辑左/右移指令 循环左/右移指令 算术左/右移指令 带进位循环左/右移指令 inc指令 pus ...

  3. 汇编学习笔记——伪指令

    目录 伪指令 段定义 结束标记 段关联标记 数据定义 标号 offset指令 seg指令 地址标号 数据标号 代码分段 程序标识 多文件系统 字符输入 重复定义 注释 重复汇编伪指令 伪指令汇总 伪指 ...

  4. 寄存器---汇编学习笔记

    第二章 寄存器 2.0 寄存器的绪论 一个典型的CPU由运算器.控制器.寄存器(CPU工作原理)等器件构成.内部总线实现 CPU 内部各个器件之间的联系,外部总线实现CPU和主板其他器件的联系. 在C ...

  5. GNU C内嵌汇编学习笔记

    前文所述,只是针对汇编格式的整理,本文将使用coreboot项目代码对其进行实例化.以方便.清晰了解到如何在C语言里使用内嵌汇编的方法.同样地,网络上也有众多文章涉及到这方面,所以本文更多是归纳总结. ...

  6. 使用BIOS进行键盘输入和磁盘读写---汇编学习笔记

    汇编笔记 使用BIOS进行键盘输入和磁盘读写 17.1 int 9中断例程对键盘输入的处理 17.2 使用int 16h中断例程读取键盘缓冲区 17.3 字符串的输入 17.4 应用int 13h中断 ...

  7. 第一个程序---汇编学习笔记

    第四章 第一个程序 4.1 一个源程序从写出到执行的过程 一个汇编语言程序从写到最终执行的简要过程. 编写汇编源程序 对源程序进行编译连接 执行可执行文件中的程序 如图所示: 4.2 源程序 程序代码 ...

  8. 寄存器(内存访问)---汇编学习笔记

    寄存器(内存访问) 序言 第二章,我们主要从CPU如何执行指令的角度讲解了8086CPU的逻辑结构.形成物理地址的方法.相关的寄存器以及一些指令. 这一章,我们从访问内存的角度继续学习几个寄存器. 3 ...

  9. linux中reap用法,ATT汇编学习笔记(一)

    file命令使用介绍 file最常用的场景就是用来查看可执行文件的运行环境,是arm呢,还是x86呢,还是mips呢?一看便知$ file a.out a.out: ELF 64-bit LSB ex ...

最新文章

  1. 中国顶级 AI 研究者数量仅为美国 1/5:美国智库最新全球 AI 实力报告
  2. 微软亚洲研究院周明:从语言智能到代码智能
  3. 关于Task类处理多线程简单示例
  4. jcifs java_Java 使用JCIFS访问网络文件共享的工具类
  5. 02-c#基础之01-基础语法(一)
  6. 6年级下册计算机教案,六年级下册信息技术教案 (6).doc
  7. 成都Uber优步司机奖励政策(3月31日)
  8. 3个概念,入门 Vue 组件开发
  9. 如何在macOS Big Sur系统中隐藏菜单栏?
  10. Ubuntu平台采用Qemu搭建ARM虚拟机环境
  11. Red5流媒体服务器的搭建
  12. Photoshop插件--创建暗调通道--脚本开发--PS插件
  13. 阿里云盘——新的屠龙勇士?
  14. 阿里电话面试(算法工程师)
  15. insert append需要注意的一个小问题
  16. 1. Emacs使用本地elpa镜像
  17. 一些电脑使用的技巧和软件分享(电脑初学者必备)
  18. [ACTF2020 新生赛]Exec1命令注入
  19. leetcode阶段总结——分割字符串类型
  20. 改后缀名不能导致图片格式的转换,以.png后缀名的图片不一定是png图片

热门文章

  1. 三星s9更新android9.0,国行三星Galaxy S9系列更新Android 9.0 界面更漂亮
  2. vue 通过银行卡号查询银行类型和银行卡类型
  3. (数据库-MySQL)修改表——添加列、修改列、删除列(名)
  4. 顾问个人成长的体会与建议
  5. 设计模式-6大设计原则
  6. fp-growth理解及应用
  7. android和web扫描枪开发
  8. [c++]随机生成四个数字,计算24点,并输出算式
  9. 【入侵检测】5.27quiz
  10. 三年级下拼音输入计算机课件,拼音输入法(三年级下册信息技术)ppt课件