首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >在kali下使用gdb以源码方式调试glibc

在kali下使用gdb以源码方式调试glibc

作者头像
用户1423082
发布2024-12-31 18:21:19
发布2024-12-31 18:21:19
20100
代码可运行
举报
文章被收录于专栏:giantbranch's bloggiantbranch's blog
运行总次数:0
代码可运行

环境

kali 2017.2

为什么写这篇记录

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

步骤

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

代码语言:javascript
代码运行次数:0
运行
复制
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那么麻烦了)

代码语言:javascript
代码运行次数:0
运行
复制
apt update

0x02 安装带调试符号的libc

32和64都装吧

代码语言:javascript
代码运行次数:0
运行
复制
apt install libc6-dbg  
apt install libc6-dbg:i386

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

代码语言:javascript
代码运行次数:0
运行
复制
apt source libc6-dev

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

代码语言:javascript
代码运行次数:0
运行
复制
glibc-2.24  glibc_2.24-17.debian.tar.xz  glibc_2.24-17.dsc  glibc_2.24.orig.tar.xz

0x03 开始调试之旅吧

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

代码语言:javascript
代码运行次数:0
运行
复制
Breakpoint 1, __GI___libc_free (mem=0x555555757460) at malloc.c:2954
2954	malloc.c: No such file or directory.

我们在源码目录找一下

代码语言:javascript
代码运行次数:0
运行
复制
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命令指定一下就好了

代码语言:javascript
代码运行次数:0
运行
复制
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,那就看到执行到源码的那行代码的具体内容了

代码语言:javascript
代码运行次数:0
运行
复制
0x00007f2eddb4851d	2955	  if (__builtin_expect (hook != NULL, 0))

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-11-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 环境
  • 为什么写这篇记录
  • 步骤
    • 0x01 修改/etc/apt/sources.list,将deb-src那条记录前面的注释去掉,我的修改后如下:
    • 0x02 安装带调试符号的libc
    • 0x03 开始调试之旅吧
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档