基础复习(IDA调试器)

1.选择IDA调试后端

在顶部有一个下拉菜单,选择调试器后端位置
在这里插入图片描述
很多用户实际上使用的是Windows版本的IDA,该IDA可以直接调试Windows下32bit和64bit的程序

2.本地调试启动方法

载入IDA后,程序实际上在对程序内置的一个字符串进行base64解码

考虑到运行过程中会直接生成所需的明文,所以调试直接抓取最终的嗯嗯解码结果会更加便捷

  1. 选择后端,选择调试器后端为Local Windows debugger“ ,即可使用IDA内置的调试器
  2. 开始调试,IDA调试OD和x64DBG的快捷键基本一致,要启动程序只需要按F9即可,单击相应工具栏的绿色的三角形可以。在启动调试前,IDA会弹出一个确认对话框,单击”Yes“按钮,即可调试
  3. 被调试文件默认的额路径为输入文件的路径,若目标文件不存在,或其他原因加载失败,IDA均会弹出警告对话框,确认后会进入Debug application setup设置的对话框
    在这里插入图片描述
    设置后单击”OK“按钮,IDA重新尝试启动程序

3.断点设置

IDA中按F2设置,也可以单击左侧小蓝点设置

在切换为断点后,对应的底色将会变成红色

IDA使用反汇编的伪代码进行调试,同样支持反汇编的后伪代码下断点

伪代码窗口中行号左侧有蓝色的圆点,这些圆点与反汇编窗口左侧蓝色的小点功能一样,都是用来切换断点的状态的

单击这蓝色圆点,伪代码的对应类似反汇编窗口中的断点,变为红色底

通过debugme,在main函数上设置断点,然后运行
在这里插入图片描述

4.查看变量

在中断后,选择”Debugger->Debugger windows->Locals“菜单命令,打开查看局部变量的窗口
在这里插入图片描述
在这里插入图片描述
默认情况下,locals窗口与伪代码窗口一起显示
在这里插入图片描述
单步执行至scanf,会发现程序进入运行状态,此时等待用户输入,随意输入一些内容后回车,程序再次中断

此时Loacal窗口中的v13变量显示刚才输入的值

在这里插入图片描述
红色代表这些变量的值被修改过

继续执行程序至base64_decode后,可以看见v5已经被修改成另有一个值
在这里插入图片描述
但实际上v5为一个字符串,存放着正确的输入

如何获取v5的内容

  1. 在Locals窗口的Location栏中可以看到v5的位置为RDI,在寄存器窗口可以看到RDI的值,单击其值右侧的按钮,可以可看见flag
  2. 修改v5的了类型,从_BYTE修改为char,此时HexRays会认为v5是一个字符串,从而将其在Locals中显示出来,具体操作:在伪代码窗口中按Y键,修改v5类型为char*并确认,然后在Loacls窗口中右键单击Refresh刷新

在这里插入图片描述
在这里插入图片描述
至此,我们成功的利用调试找到了内存中的flag

注意 IDA中的变与C语言中变量的行为并不完全一致,IDA中的变量有特殊的生命周期,尤其是寄存器中的变量,在超出一定范后,其值会被覆盖成其他变量的值,这是无法避免的

所以Locals中变量的值在远离被引用位置时并不可靠

请仅在该变量被引用时或明确知道该变量生存周期时再相信Locals显示的值

  • 10
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
IDA Pro是一款强大的反汇编工具,可用于反汇编各种二进制文件,包括Android应用程序中的dex文件。以下是使用IDA Pro调试dex文件的步骤: 1. 下载并安装IDA Pro软件,并打开要调试的dex文件。 2. 在IDA Pro中选择“File” -> “Open”,然后选择要调试的dex文件。如果IDA Pro无法自动识别文件类型,请手动选择“DEX - Dalvik Executable”文件类型。 3. 等待IDA Pro分析dex文件。一旦分析完成,您将看到一个反汇编窗口,其中包含dex文件的反汇编代码。 4. 选择要调试的代码段,并在IDA Pro中选择“Debugger” -> “Process Options”。 5. 在“Process Options”窗口中,选择“Android Debugger”作为调试器,并选择要使用的调试器选项。您可以选择使用本地调试器或远程调试器,具体取决于您的需求。 6. 在“Process Options”窗口中,输入要启动的调试器命令行。例如,如果您使用的是本地调试器,您可以输入“adb shell dalvikvm -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y”。 7. 单击“OK”按钮,以启动调试器并开始调试代码。 8. 在IDA Pro的调试窗口中,您可以使用各种调试命令,例如“run”、“step”、“breakpoint”等,来控制代码的执行。 9. 您还可以使用IDA Pro的其他调试工具,例如内存查看器和寄存器查看器,来进一步分析代码和调试问题。 总之,IDA Pro是一款功能强大的反汇编工具,可用于调试Android应用程序中的dex文件。通过遵循上述步骤,您可以轻松地使用IDA Pro调试dex文件,并深入了解代码执行的细节。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Back~~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值