发现问题
如果你尝试直接进行$ apt install gdb
安装后应该是最新版的gdb 13.2。并且尝试安装peda后将会出现from six.moves import range
报错
2024版的kali的python3是python3.11版本,而peda中的six库支持的是3.11之前的。而gdb13是支持python3.12的。
有趣的一点是,当我们在gdb中查看python版本的时候是3.12.4
(gdb) python import sys; print(sys.version_info)
sys.version_info(major=3, minor=12, micro=4, releaselevel=‘final’, serial=0)
(gdb) python import sys; print(sys.version_info)
/usr/bin/python (真实情况是软连接指向python3.11)
跟进路径发现是一个用于开发和编译与 Python 3.12 版本相关的程序和模块
(gdb) python import sys; print(sys.path)
[‘/home/maptnh/peda/lib/’, ‘/usr/share/gdb/python’]
跟进/home/maptnh/peda/lib/发现存在six.py。
解决方案
1.下载gdb 13
$ sudo apt install gdb
2.下载gdb-peda
$ git clone https://github.com/longld/peda.git ~/peda;echo "source ~/peda/peda.py" >> ~/.gdbinit
3.安装python12替换软连接
$ sudo apt install python3.12
$ sudo ln -sf $(which python3.12) /usr/bin/python
$ sudo ln -sf $(which python3.12) /usr/bin/python3
$ if [[ $(python --version 2>&1) == *"Python 3.12"* ]] && [[ $(python3 --version 2>&1) == *"Python 3.12"* ]]; then
echo "[+] Success"
else
echo "[-] Failure"
fi
输出Success即可
4.替换备份six模块
启动gdb,获取库路径
$ gdb
(gdb) python import sys; print(sys.path)
$ mv /home/maptnh/peda/lib/six.py /home/maptnh/peda/lib/six.py.bak
再次启动gdb,成功将peda插件载入