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

 

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

  1. 这道题目怎么解:

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

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

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

  2. 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

     

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

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

原文地址:https://www.cnblogs.com/DorinXL/p/12732721.html