当前位置: 首页 > news >正文

ida调试技巧-通过修改zf寄存器的值绕过简单反调试

参考本篇->OllyDbg笔记-对标志寄存器中ZF的理解(逆向方面)_零标志位zf怎么判断-CSDN博客

不想看也没关系,蒟蒻博主概述一下,总之,在机器执行汇编指令时,标志(flag)寄存器中的一个zf (Zero Flag) 零标志位用来存放指令判断,他的值将决定程序的分支走向,比方说zf=1如果走if逻辑,那么zf=0就走else逻辑了

因此在逆向分析过程中,如果程序设有比较简单的反调试函数,可以利用这一点进行绕过,做法就是在反调试函数处打断点,然后修改此刻的zf值为相反逻辑值,下面举个实例:

在这个程序的第11行代码处存在一个反调试函数,我们需要绕过它

按TAB键查看汇编代码(如果ida不是下图这种流程图的形式,按空格键切换即可),这里可以看到反调试函数的具体逻辑,其中有一个jz指令,可以参考本篇->jmp、JE、JZ、JNE、JNT指令_je指令-CSDN博客

不想看还是没关系(哈哈),概述下来就是JZ命令通过ZF标志位判断是否跳转,当执行到JZ指令时,如果ZF=1则跳转,如果ZF=0,不跳转,反正无非就是一个if...else的逻辑

既然ZF=0时程序下一步往左边的线路走,那直接手动把ZF的值改成1

将ZF的值改为1后会发现,程序下一步的逻辑就变成往右边的线路走了(此处绿色的支线在不停跳动,静态截图没办法展现,反正肉眼是能很清楚看见的!),到此也就实现了绕过反调试的目的!

相关文章:

  • Linux manim安装
  • 幻兽帕鲁服务器价格太卷了,4核16G游戏联机服务器价格24元
  • String类相关oj练习
  • amazon中sns的使用
  • Android ViewBinding 使用
  • 【QT入门】 Qt自定义信号后跨线程发送信号
  • 基于大语言模型的云故障根因分析|顶会EuroSys24论文
  • 操作系统系列学习——多级页表与快表
  • k8s入门到实战(十四)—— Helm详细介绍及使用
  • Java实现猜数字游戏:编程入门之旅
  • 数学建模常用的代码
  • Jmeter 从登录接口提取cookie 并 跨线程组调用cookie (超详细)
  • 游戏本笔记本更换@添加内存条实操示例@DDR5内存条
  • Linux 基于HAProxy+KeepAlived实现
  • 安防监控视频汇聚平台EasyCVR启用图形验证码之后如何调用login接口?
  • Flex布局到底解决了什么问题
  • JavaScript 奇技淫巧
  • JavaScript中的对象个人分享
  • JS变量作用域
  • learning koa2.x
  • Material Design
  • miaov-React 最佳入门
  • Perseus-BERT——业内性能极致优化的BERT训练方案
  • supervisor 永不挂掉的进程 安装以及使用
  • 解析 Webpack中import、require、按需加载的执行过程
  • 每天10道Java面试题,跟我走,offer有!
  • 跳前端坑前,先看看这个!!
  • 温故知新之javascript面向对象
  • 小李飞刀:SQL题目刷起来!
  • 写给高年级小学生看的《Bash 指南》
  • ​Java并发新构件之Exchanger
  • #NOIP 2014# day.2 T2 寻找道路
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (libusb) usb口自动刷新
  • (Oracle)SQL优化技巧(一):分页查询
  • (二开)Flink 修改源码拓展 SQL 语法
  • (翻译)Entity Framework技巧系列之七 - Tip 26 – 28
  • (附源码)ssm高校升本考试管理系统 毕业设计 201631
  • (附源码)计算机毕业设计大学生兼职系统
  • (附源码)小程序儿童艺术培训机构教育管理小程序 毕业设计 201740
  • (免费领源码)Python#MySQL图书馆管理系统071718-计算机毕业设计项目选题推荐
  • (强烈推荐)移动端音视频从零到上手(上)
  • ***微信公众号支付+微信H5支付+微信扫码支付+小程序支付+APP微信支付解决方案总结...
  • .net core 6 集成 elasticsearch 并 使用分词器
  • .NET Framework 4.6.2改进了WPF和安全性
  • .Net Remoting(分离服务程序实现) - Part.3
  • .NET 的程序集加载上下文
  • .NET 命令行参数包含应用程序路径吗?
  • .Net6 Api Swagger配置
  • .net反编译的九款神器
  • .NET设计模式(11):组合模式(Composite Pattern)
  • .NET使用HttpClient以multipart/form-data形式post上传文件及其相关参数
  • :not(:first-child)和:not(:last-child)的用法
  • []error LNK2001: unresolved external symbol _m
  • [20171106]配置客户端连接注意.txt