置顶:已卸载
对于不是docker的请参考这篇文章,docker的自己加油吧。
在我写下这段话的时候,我的gdb 14.1正在编译安装…大概逐条整理一下都有什么雷吧。
pwndbg装不上,有类似于Invalid Syntax的问题
首先,apt-get install gdb
装上的是gdb 7.11版本好像是。然后他的默认python依赖是python3.5。
你可以通过这个命令查看gdb的python依赖,pwndbg安装的时候会用这个命令:
1 | gdb -batch -q --nx -ex 'pi import platform; print(".".join(platform.python_version_tuple()[:2]))' |
这个python版本不支持很多代码特性,好像包括f""
这类字符串的一些特性。这会导致pwndbg安装的时候报错。但是修改pwndbg对应的源码之后还是有Invalid Syntax
这类错误。于是我索性说自己下源码搞一个gdb最新版本得了。这就是事情的起因。
编译说有几个组件版本低了:GMP,MPFR,MPC
然后问题来了,首先下载之后make报错说缺少几个东西:GMP,MPFR,MPC。需要更高的版本。那就更新(如果你也是docker,记得先安装wget命令):
1 | wget ftp://gcc.gnu.org/pub/gcc/infrastructure/gmp-6.1.0.tar.bz2 |
然后解压,./configure
+make && make install
。
configure: error: No usable m4 in $PATH or /usr/5bin
直接apt-get install m4
即可。
/root/gdb-14.1/missing: 81: /root/gdb-14.1/missing: makeinfo: not found
apt-get install texinfo
虽然我也不知道这他妈是什么。
装完gdb怎么还是7.11?
记得cp(mv) xx/gdb /usr/bin/gdb
Python scripting is not supported in this copy of GDB.
记得编译的时候先尝试:
1 | ./configure --with-python |
如果说python is missing or unusable,试试加上python对应版本的路径:
1 | ./configure --with-python=/usr/bin/python3 #(或者是别的什么) |
再make。(又浪费半小时)。
如果你是在这个地方报错:Optional[str] = None, ^ SyntaxError: invalid syntax
那么恭喜你,这个可选参数的特性需要python3.10+的支持。我们python3.5不支持,比起学习如何将他改成3.5支持的特性,我选择装一份3.12。当然这不是最好的选择,可以试着改一下这个特性。
python官网下源码编译。
服了我的gdb用最新的了,python依赖在./setup.sh
里面检测的也是3.12还是报错,看那个路径好像还是用的3.5。最后也没搞懂,一个错搞定又有别的错,放弃!
选择linux原生系统选择成功人生
在u盘上装了deepin,真是好好又用用啊,但是pwndbg安装报错总是说找不到ipython 8.12.3版本,pip upgrade也没有解决这个问题,结果在网上搜到了一键环境配置的git库:git clone https://github.com/nightRainy/Pwn_environment_automatically_build_script.git
将脚本chmod 777后运行 pwndbg就装好了,虽然我不知道为什么。