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

IDA动态调试

IDA动调基本知识

IDA(Interactive DisAssembler)是一款功能强大的逆向工程工具,它提供了丰富的动态调试功能,允许分析人员在程序运行时深入分析和调试二进制文件。以下是对IDA动态调试功能的详细介绍:

打开IDA并加载要调试的二进制文件或动态链接库(DLL)。

进入Debugger选项 点击select debugger

这里选择第三个 并且点击OK

重新进入Debugger选项

点击带有绿色三角符号的Start process即可开始调试程序

例题dynamic.exe

我们来写一个题目来练练手吧!

将exe文件拖入ida 进入主函数 F5查看伪c代码

在sub_14001129E(v7, 12i64, v8)处打断点

动调操作按照上面的做就可以 点击带有绿色三角符号的Start process开始调试程序

右击数据窗口,选择Synchronize with

当程序暂停在断点时,IDA的调试器窗口将更新以显示当前的程序状态,包括寄存器、内存、堆栈和调用堆栈等。Synchronize with就可以查看与寄存器同步的信息

或者这样也可以

点击RBP运行 得到flag

在刚开始接触这里我很疑惑为什么有那么多寄存器为什么要选择RBP 直到我去问了组长才知道为什么

通用寄存器:共有rax、rbx、rcx、rdx、rsi、rdi、rbp、rsp、r8、r9、r10、r11、r12、r13、r14、r15这16个寄存器,CPU对它们的用途没有做特殊规定,可以自定义其用途(其中rsp、rbp这两个寄存器有特殊用途)。

其中,rsp栈顶寄存器以及rbp栈基寄存器都和函数调用栈相关,其中rsp寄存器一般用来存放函数调用栈的栈顶在内存中的地址,rbp寄存器通常用来存放函数的栈帧在内存中的起始地址。

所以只能通过RBP或者RSP查看更多的信息

flag就找到了

我们也可以换X64dbg动态调试

X64dbg调试

关于x64dbg调试技巧我在另外一篇博客有介绍 这里不做赘述

http://t.csdnimg.cn/RwxQk

先查找可疑字符串

找到了和flag有关的字符串

双击进去

在00007FF69B251F04地址处下断点

F9多跑几次 发现flag

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【电力系统】清除故障后电力系统的摆动曲线
  • 信号量(二值信号量和计数信号量)和互斥量
  • 【hot100-java】【搜索二维矩阵 II】
  • 装备综合保障研究进展整理
  • 15_分布式数据结构
  • Lua 与 C#交互
  • 通过域名无法访问不到网站,IP可正常访问(DNS污染)
  • 01 Docker概念和部署
  • 计算机网络基础概念 交换机、路由器、网关、TBOX
  • 大数据之Flink(二)
  • 基于SpringBoot+Vue+MySQL的滑雪场管理系统
  • vscode配置django环境并创建django项目
  • 基于单片机的电子药箱控制系统设计
  • 百度视频排名代发(百度视频秒收录代发)
  • 基于Spring Boot开发一个自习室预定系统
  • python3.6+scrapy+mysql 爬虫实战
  • 5分钟即可掌握的前端高效利器:JavaScript 策略模式
  • CentOS 7 防火墙操作
  • Gradle 5.0 正式版发布
  • IOS评论框不贴底(ios12新bug)
  • isset在php5.6-和php7.0+的一些差异
  • JS实现简单的MVC模式开发小游戏
  • Laravel 实践之路: 数据库迁移与数据填充
  • Python3爬取英雄联盟英雄皮肤大图
  • vue学习系列(二)vue-cli
  • 记一次删除Git记录中的大文件的过程
  • 如何在 Tornado 中实现 Middleware
  • 腾讯优测优分享 | Android碎片化问题小结——关于闪光灯的那些事儿
  • 一份游戏开发学习路线
  • 自定义函数
  • 带你开发类似Pokemon Go的AR游戏
  • ​io --- 处理流的核心工具​
  • ​LeetCode解法汇总307. 区域和检索 - 数组可修改
  • (02)Hive SQL编译成MapReduce任务的过程
  • (cljs/run-at (JSVM. :browser) 搭建刚好可用的开发环境!)
  • (PHP)设置修改 Apache 文件根目录 (Document Root)(转帖)
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (保姆级教程)Mysql中索引、触发器、存储过程、存储函数的概念、作用,以及如何使用索引、存储过程,代码操作演示
  • (纯JS)图片裁剪
  • (附源码)springboot猪场管理系统 毕业设计 160901
  • (附源码)计算机毕业设计SSM在线影视购票系统
  • (力扣记录)1448. 统计二叉树中好节点的数目
  • (五)大数据实战——使用模板虚拟机实现hadoop集群虚拟机克隆及网络相关配置
  • (转)大型网站的系统架构
  • ***php进行支付宝开发中return_url和notify_url的区别分析
  • ***通过什么方式***网吧
  • .NET 6 在已知拓扑路径的情况下使用 Dijkstra,A*算法搜索最短路径
  • .Net 8.0 新的变化
  • .NET 应用架构指导 V2 学习笔记(一) 软件架构的关键原则
  • .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary)
  • .NET中winform传递参数至Url并获得返回值或文件
  • .sh文件怎么运行_创建优化的Go镜像文件以及踩过的坑
  • ;号自动换行
  • [ CTF ]【天格】战队WriteUp- 2022年第三届“网鼎杯”网络安全大赛(青龙组)
  • [@Controller]4 详解@ModelAttribute