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 参考

  1. http://weaponx.site/2017/05/19/Ubuntu%E4%B8%8A%E6%BA%90%E7%A0%81%E8%B0%83%E8%AF%95glibc/
  2. http://blog.nlogn.cn/trace-glibc-by-using-gdb/
  3. glibc源码下载地址 https://www.gnu.org/software/libc/
  4. git clone git://sourceware.org/git/glibc.git