🐈
gdbにglibcやlinuxのソースコードを表示させたい!
やりたいこと
- CTFでバイナリとlibcが与えられたときに、gdbにlibcのソースコードを表示させたい
- Linuxのデバッグをするときに、gdbにソースコードを表示させたい
glibcのソースコードを表示させたgdb
linuxのソースコードを表示させたgdb
やりかた
glibcのソースコードを表示させる
準備
- libcにデバッグ情報をつける (参考: https://satoooon1024.hatenablog.com/entry/2022/06/12/libcにデバッグシンボルを付ける方法と自動化)
-
glibc
のソースコードを適当な場所にクローンするgit clone https://github.com/bminor/glibc.git /path/to/glibc
手順
-
gdb main
等でgdbを起動 directory /path/to/glibc
linuxのソースコードを表示させる
準備
- debug symbol付きvmlinuxをビルドする
-
linux
のソースコードを適当な場所にクローンするgit clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git /path/to/linux
手順
ターミナルを2つ開く。ここではそれぞれterm1、term2と呼ぶ。
-
gdb vmlinux
等でgdbを起動 (term1) -
qemu-system-x86_64
コマンド(CTFであればrun.sh
等に書かれている)に-s
引数をつけて起動 (term2) -
target remote :1234
(term2) -
directory /path/to/linux
(term2)
終わりに
gdbのdirectoryコマンドを最近知って便利だったので布教しようという記事でした。
Discussion