Zj_W1nd's BLOG

ubuntu16.04 docker环境踩坑

2023/12/27

置顶:已卸载

对于不是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
2
3
4
wget ftp://gcc.gnu.org/pub/gcc/infrastructure/gmp-6.1.0.tar.bz2 
#记得选对应版本
wget ftp://gcc.gnu.org/pub/gcc/infrastructure/mpfr-3.1.4.tar.bz2
wget ftp://gcc.gnu.org/pub/gcc/infrastructure/mpc-1.0.3.tar.gz

然后解压,./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就装好了,虽然我不知道为什么。

CATALOG
  1. 1. 置顶:已卸载
    1. 1.1. pwndbg装不上,有类似于Invalid Syntax的问题
    2. 1.2. 编译说有几个组件版本低了:GMP,MPFR,MPC
    3. 1.3. configure: error: No usable m4 in $PATH or /usr/5bin
    4. 1.4. /root/gdb-14.1/missing: 81: /root/gdb-14.1/missing: makeinfo: not found
    5. 1.5. 装完gdb怎么还是7.11?
    6. 1.6. Python scripting is not supported in this copy of GDB.
    7. 1.7. 如果你是在这个地方报错:Optional[str] = None, ^ SyntaxError: invalid syntax
  2. 2. 选择linux原生系统选择成功人生