ITADN
xfangfang/PPPwn_cpp
xfangfang/PPPwn_cpp · 文件 下载 ZIP
文件最后提交记录最后更新时间
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

PPPwn c++

这是 PPPwn 的 C++ 重写版本

特性

  • 更小的二进制文件体积
  • 支持广泛的 CPU 架构和系统
  • 在 Windows 下运行更快(更精确的睡眠时长)
  • 失败时自动重启
  • 可以编译为库并集成到你的应用程序中

每日构建

你可以从 nightly.link 下载最新的构建版本。

对于 Windows 用户,在运行此程序之前需要安装 npcap。 有很多用于 pppwn_cpp 的 GUI 封装工具,如果你不熟悉命令行,最好使用它们。

对于 macOS 用户,下载后需要运行 sudo xattr -rd com.apple.quarantine <path-to-pppwn>。 请参阅 #10 以获取更多信息。

用法

显示帮助

pppwn

列出接口

pppwn list

运行漏洞利用

pppwn --interface en0 --fw 1100 --stage1 "stage1.bin" --stage2 "stage2.bin" --timeout 10 --auto-retry
  • -i --interface: 连接到 ps4 的网络接口
  • --fw: 目标 ps4 的固件版本 (默认: 1100)
  • -s1 --stage1: stage1 payload 的路径 (默认: stage1/stage1.bin)
  • -s2 --stage2: stage2 payload 的路径 (默认: stage2/stage2.bin)
  • -t --timeout: ps4 响应的超时时间(秒),0 表示始终等待 (默认: 0)
  • -wap --wait-after-pin: 第一轮 CPU pinning 后的等待时间(秒) (默认: 1)
  • -gd --groom-delay: 在 Heap grooming 期间每 groom-delay 轮等待 1ms (默认: 4)
  • -bs --buffer-size: PCAP 缓冲区大小(字节),小于 100 表示使用默认值(通常为 2MB) (默认: 0)
  • -a --auto-retry: 失败或超时时自动重试
  • -nw --no-wait-padi: 在开始利用之前不再等待一个 PADI
  • -rs --real-sleep: 使用 CPU 实现更精确的睡眠时间 (仅在执行速度过慢时使用)
  • -old --old-ipv6: 使用之前的 IPv6 地址进行利用 (仅在利用失败时使用)
  • --web: 使用 web 界面
  • --url: web 界面的 url (默认: 0.0.0.0:7796)

Supplement:

  1. 对于 --timeout,不包含等待 PADI,这允许你在 ps4 启动之前开始 pppwn_cpp
  2. 对于 --no-wait-padi,默认情况下,pppwn_cpp 会等待两个 PADI 请求,根据 TheOfficialFloW/PPPwn/pull/48 这有助于提高稳定性。如果你不需要此功能,可以使用此参数关闭它。
  3. 对于 --wait-after-pin,根据 SiSTR0/PPPwn/pull/1 将此参数设置为 20 有助于提高稳定性(对我无效),此选项未在 Web 界面中使用。
  4. 对于 --groom-delay,这是一个经验值。pppwn 的 Python 版本在 Heap grooming 时不设置任何等待,但如果 C++ 版本不添加一些等待,在我的 ps4 上存在内核恐慌的概率。你可以设置 1-4097 之间的任何值(4097 相当于不进行任何等待)。
  5. 对于 --buffer-size,在低端设备上运行时,可以设置此值以减少内存使用。我测试过将其设置为 10240 可以正常运行,内存使用量约为 3MB。(注意:值过小可能导致某些数据包无法正确捕获)

开发

本项目依赖于 pcap,cmake 默认会在系统路径中搜索它。 你也可以添加 cmake 选项 -DUSE_SYSTEM_PCAP=OFF 从源代码编译 pcap(可用于交叉编译)。

请参阅工作流文件 .github/workflows/ci.yaml 以获取更多信息。

# native build (macOS, Linux)
cmake -B build
cmake --build build -t pppwn

# cross compile for mipsel linux (soft float)
cmake -B build -DZIG_TARGET=mipsel-linux-musl -DUSE_SYSTEM_PCAP=OFF -DZIG_COMPILE_OPTION="-msoft-float"
cmake --build build -t pppwn

# cross compile for arm linux (armv7 cortex-a7)
cmake -B build -DZIG_TARGET=arm-linux-musleabi -DUSE_SYSTEM_PCAP=OFF -DZIG_COMPILE_OPTION="-mcpu=cortex_a7"
cmake --build build -t pppwn

# cross compile for Windows
# https://npcap.com/dist/npcap-sdk-1.13.zip
cmake -B build -DZIG_TARGET=x86_64-windows-gnu -DUSE_SYSTEM_PCAP=OFF -DPacket_ROOT=<path to npcap sdk>
cmake --build build -t pppwn

致谢

衷心感谢 FloW 的魔法般的工作,你是我的英雄。