🐈

gdbにglibcやlinuxのソースコードを表示させたい!

2024/08/28に公開

やりたいこと

  • CTFでバイナリとlibcが与えられたときに、gdbにlibcのソースコードを表示させたい
  • Linuxのデバッグをするときに、gdbにソースコードを表示させたい
    glibcのソースコードを表示させたgdb
    glibcのソースコードを表示させたgdb
    linuxのソースコードを表示させたgdb
    linuxのソースコードを表示させたgdb

やりかた

glibcのソースコードを表示させる

準備

  1. libcにデバッグ情報をつける (参考: https://satoooon1024.hatenablog.com/entry/2022/06/12/libcにデバッグシンボルを付ける方法と自動化)
  2. glibcのソースコードを適当な場所にクローンする
    • git clone https://github.com/bminor/glibc.git /path/to/glibc

手順

  1. gdb main等でgdbを起動
  2. directory /path/to/glibc

linuxのソースコードを表示させる

準備

  1. debug symbol付きvmlinuxをビルドする
  2. linuxのソースコードを適当な場所にクローンする
    • git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git /path/to/linux

手順

ターミナルを2つ開く。ここではそれぞれterm1、term2と呼ぶ。

  1. gdb vmlinux等でgdbを起動 (term1)
  2. qemu-system-x86_64コマンド(CTFであればrun.sh等に書かれている)に-s引数をつけて起動 (term2)
  3. target remote :1234 (term2)
  4. directory /path/to/linux (term2)

終わりに

gdbのdirectoryコマンドを最近知って便利だったので布教しようという記事でした。

Discussion