如何搭建glibc源码调试环境?
0x01 下载libc6-dbg 和 libc源码
搭建源码调试环境,可以在调试程序时,查看函数底层的细节。搭建过程如下:
# 安装i386时可能找不到 20180820
dpkg --add-architecture i386
sudo apt-get update && sudo apt-get upgrade
sudo apt-get install libc6-dbg libc6-dbg:i386 # 获取dbg版带符号的so库
sudo vim /etc/apt/source.list # 取消了deb-src的注释,不知是否确实影响了
sudo apt-get update && sudo apt-get upgrade
mkdir ~/glibc && cd ~/glibc && sudo apt-get source libc6-dev # 获取glibc源码
0x02 gdb调试 加载源码
# 编译程序
gcc -g printf.c && gdb a.out # 貌似不用-g也可以源码调试
# 加载源码 stdio-common包含printf 跟踪其它的函数需要自己指定目录
gdb> directory ~/glibc/glibc-2.23/stdio-common
directory ~/Pwn/glibc/glibc-2.23/stdio-common
directory /root/Pwn/glibc/glibc-2.23/malloc
0x03 参考
- http://weaponx.site/2017/05/19/Ubuntu%E4%B8%8A%E6%BA%90%E7%A0%81%E8%B0%83%E8%AF%95glibc/
- http://blog.nlogn.cn/trace-glibc-by-using-gdb/
- glibc源码下载地址 https://www.gnu.org/software/libc/
- git clone git://sourceware.org/git/glibc.git