zoukankan      html  css  js  c++  java
  • 在kali下使用gdb以源码方式调试glibc

    环境

    kali 2017.2

    为什么写这篇记录

    其实这个主要是之前调试linux堆漏洞的时候,崩溃的定位有点困难,尤其是free的时候出错的时候,之前硬跟了free的汇编半天才找到问题,心累啊~

    步骤

    0x01 修改/etc/apt/sources.list,将deb-src那条记录前面的注释去掉,我的修改后如下:

    root@kali:~# cat /etc/apt/sources.list
    # 
    
    # deb cdrom:[Debian GNU/Linux 2017.2 _Kali-rolling_ - Official Snapshot amd64 LIVE/INSTALL Binary 20170917-01:51]/ kali-rolling contrib main non-free
    
    #deb cdrom:[Debian GNU/Linux 2017.2 _Kali-rolling_ - Official Snapshot amd64 LIVE/INSTALL Binary 20170917-01:51]/ kali-rolling contrib main non-free
    
    deb http://http.kali.org/kali kali-rolling main non-free contrib
    deb-src http://http.kali.org/kali kali-rolling main non-free contrib
    

    之后就更新一下list吧(既然有apt就不要多个get那么麻烦了)

    apt update

    0x02 安装带调试符号的libc

    32和64都装吧

    apt install libc6-dbg  
    apt install libc6-dbg:i386

    之后就下载源码到当前目录

    apt source libc6-dev

    之后目录就出现下面几个东西,glibc-2.24就是源码目录,当然版本有可能不同

    glibc-2.24  glibc_2.24-17.debian.tar.xz  glibc_2.24-17.dsc  glibc_2.24.orig.tar.xz

    0x03 开始调试之旅吧

    gdb不会自动找到源码,还需自己干

    Breakpoint 1, __GI___libc_free (mem=0x555555757460) at malloc.c:2954
    2954    malloc.c: No such file or directory.

    我们在源码目录找一下

    root@kali:~# find ./glibc-2.24/ -name malloc.c
    ./glibc-2.24/.pc/any/cvs-malloc-hardening.diff/malloc/malloc.c
    ./glibc-2.24/malloc/malloc.c

    最后用directory命令指定一下就好了

    gdb-peda$ directory ~/glibc-2.24/malloc/
    Source directories searched: /root/glibc-2.24/malloc:/root/glibc-2.24/malloc/malloc.c:$cdir:$cwd

    我们再ni,那就看到执行到源码的那行代码的具体内容了

    0x00007f2eddb4851d  2955      if (__builtin_expect (hook != NULL, 0))

    好了,大家可以好好去玩耍了

    PS:需要哪个文件的时候我们directory再指定就好了

  • 相关阅读:
    aws-lambda之异步实现文件的下载上传
    aws实例部署flask报错script-timed-out-before-returning-headers-application-py
    aws上部署scrapy,出现 Out of Memory,内存溢出
    在线UserAgent,爬虫UA
    ubuntu10.24 下安装 unixODBC coreseek4.1 手记
    ubuntu12.04 安装 python2.6
    coreseek/sphinx CentOS6.4下安装
    Elasticsearch 6.2.3 崩溃经历
    (转)梳理在线教育的几大金矿
    kangaroo-open 开源在线公开课平台
  • 原文地址:https://www.cnblogs.com/cnsec/p/13286501.html
Copyright © 2011-2022 走看看