zoukankan      html  css  js  c++  java
  • 由一道逆向题而引发,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

       

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

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

  • 相关阅读:
    Mac下mysql出现错误:ERROR 1055 (42000)
    单表查询
    外键的变种 三种关系
    Java8中Lambda表达式详解
    Java中的比较器Comparable、Comparator
    Java创建线程的方法
    java日期格式化
    Docker容器如何修改hosts
    使用postman可以正常访问,但是在应用中返回415状态码
    使用tcpdump进行抓包
  • 原文地址:https://www.cnblogs.com/DorinXL/p/12732721.html
Copyright © 2011-2022 走看看