由一道逆向题而引发,IDA调试ELF文件

通过suctf-2016的一道题:serial-150而引发的一系列问题与解决方案:

  1. 这道题目怎么解:

本意是想通过解决这道题来学习新知识,确实学到了。

IDA打开后发现无法反编译,此时我想,如果是exe的话我可以用od动态调试,可是elf该用什么呢?linux上有专门的调试工具,可我都没怎么用过。

在网上搜寻wp后发现用的是IDA通过远程连接linux来调试elf文件,那么问题来了,我不会。

  1. IDA远程动态调试ELF文件

因为还没有研究《IDA Pro权威指南》,暂时跟着网上的来。

综合了多家博客的方式,我也算终于摸索出来如何实现IDA远程调试ELF文件。

从效果上看,IDA在我主机上运行,通过设置连接到了虚拟机的linux系统上,实现了主机调试,虚拟机运作的这么一种方式。原理暂不明白。

以下是成功之后的情况:

连接的第一步:

将对应的文件复制到linux中,一个32位一个64位请自己选择。(以64位为例

然后我将需要调试的文件一并复制到一个专门的文件夹:

然后在linux中运行,这里我用了【chmod 777 linux_server64】指令打开权限,然后【./linux_server64】开启服务:

此时,linux上的步骤已经完成了。

如果是第一次操作的话需要加几个步骤:

【ifconfig】来找到自己虚拟机的ip地址:

我的虚拟机在这一步出现了问题,这是后面我要说的。

【pwd】记录所在位置的路径:

然后就是主机上IDA的设置了:

像之前一样将文件拖入IDA,然后打开。

打开之后在菜单栏:

select debugger

选择remote linux debugger

选择process options

这一步就比较重要了,也比较容易出错,改写什么我都在图中标注好了。

如果没有问题的话,我们按下F9就可以开始调试了,同时linux虚拟机上会显示连接成功的消息:

之后便可以开始调试了,具体怎么调试就是另一个问题了。

一些问题:

第一个问题:

我遇到的第一个问题就是IDA反映了这么一段话:

The file cant be loaded by the debugger plugin.

Please verify that the parameters are valid.

调试器插件无法加载文件,请验证参数是否有效。

我解决这个问题的方法是关闭了防火墙,大概放开端口也可以解决。

Ubuntu关闭防火墙:【sudo ufw disable】

Ubuntu打开防火墙:【sudo ufw enable】

Ubuntu开启端口:【sudo ufw allow 端口号】

第二个问题:

这个是因为填写的ip地址不正确,至于为什么填了个这个,是因为我第一次ifconfig的时候没有ip地址…

第三个问题:

这个也是因为输错了ip,不过这次不是localhost了,是我另外的虚拟机的。

  1. VMware下我的Ubuntu虚拟机没有IP地址解决方案

在我尝试连接虚拟机的时候,第一次并没有填写正确的ip地址,因为根本没有给我。

在网上找解决方案,看到一个人的博客里写着自己修改了开机选项,关闭了一些选项,把他们开启就好了:https://blog.csdn.net/qq_38222534/article/details/80635272

最后,你问我这题怎么做?

那得等我用熟动态调试才行。

发表了74篇文章 · 总计107.96k字
本博客已稳定运行
使用 Hugo 构建
主题 StackJimmy 设计