《从0 到1 CTFer成长之路》逆向工程基础

动态分析与调试 4-debugme IDA调试


前言

博主是一名刚刚开始学习逆向的小白,学习过程中想通过写博客记录过程进行复习,有不足恭请指正。
本篇主要讲利用IDA调试器取得内存中的flag


—、IDA调试器

IDA自身内带调试器,可以同时用上IDA和HexRays的分析功能,可以对反编译的伪代码进行调试获得如源代码调试般的体验。
IDA pro安装请看B站大佬:https://www.bilibili.com/video/BV1uA411V7LK

二、操作步骤

1.断点设置

我们首先将4-debug.exe载入IDA后按下F5显示伪代码
之后在界面中的printf语句中按F2或点击语句左边蓝色小圆点下一个断点
如图
在这里插入图片描述

2.开始调试

按下F9或选左上角debugger选项进入调试
后选择后端为Local Windows debugger,即可使用IDA内置调试器
在这里插入图片描述
在弹出的确认对话框中选择Yes即可开始调试
(被调试文件默认路径为输入文件的路径,如需调整路径可通过“Debugger->Process options”菜单目录进入调整)

在这里插入图片描述之后进入如下页面
后按下F5即可看到在调试状态下看到伪代码
在这里插入图片描述选择“Debugger->Debugger windows->Locals”菜单命令打开查看局部变量的窗口

在这里插入图片描述在这里插入图片描述之后按下F8一直到程序执行到scanf语句位置,会发现程序进入运行状态,在程序运行窗口随意输入一些值后按下回车
在这里插入图片描述即可在Locals窗口看到我们输入的值(变量红色表示变量值有变化)
在这里插入图片描述

后继续执行程序到base64_decode位置,可以看到v5的值发生了变化,并且其位置为RDI
在这里插入图片描述后在寄存器窗口可以看到RDI对应的值,点击旁边小箭头即可在反汇编窗口跳到对应位置
在这里插入图片描述flag已清晰可见
在这里插入图片描述选中地址按a键即可将其转为字符串显示
在这里插入图片描述

之后可在伪代码界面将v5类型修改为char*(按Y键输入char*)将其转为字符串并在Locals窗口右键Refresh刷新即可在Locals窗口显示字符串

在这里插入图片描述成功找到flag!

感谢观看

猜你喜欢

转载自blog.csdn.net/weixin_50783572/article/details/116543819
今日推荐