摘要

  • pwntools的安装
  • pwntools的组件

正文

pwntools的安装

pwntools是基于python的一个包,我们可以用pip install来安装这个包。

坑:在 Manjaro 22、Ubuntu 23.04、Fedora 38等最新的linux发行版中运行pip install时,通常会收到一个错误提示:error: externally-managed-environment,即“外部管理环境”错误,但这不是一个 bug。

解决办法:

  1. 直接去除警告。缺点是包装多了可能会产生混乱
  2. 使用pipx缺点是这个只适用于命令行,脚本中无法使用import引用包
  3. 使用venv创建虚拟环境。(我选择为pwn单独建一个环境)
    • apt install python3-venv
    • python3 -m venv 目录,该指令会在目录中创建一个python虚拟环境。
    • 进入虚拟环境所在的目录,使用source bin/activate来进入虚拟环境,然后pip install即可正常使用。
    • 关闭当前shell或使用deactivate即可退出虚拟环境。

总之大费周章最后终于装完了。

pwntools的组件

命令行中输入pwn可以看到pwntools中包括的工具。

1
asm,checksec,constgrep,cyclic,debug,disasm,disablenx,elfdiff,elfpatch,errno,hex,libcdb,phd,pwnstrip,scramble,shellcraft,template,unhex

checksec工具

checksec介绍

cyclic工具

使用cyclic的实践-ctfshow-pwn25(ret2libc)

shellcraft工具

使用shellcraft的实践-ctfshow-pwn24(ret2text)

源代码中的ELF("./xxx")函数

这里面抓出来的地址其实不是运行出来的,而是反汇编出来的。就跟objdump -S xxx中对应的地址是一样的。

敬请期待,还没用到