从零开始的 Pwn 之旅 - Pwn 环境的搭建

总结摘要
当前文章较简略,可参考 https://blog.csdn.net/j284886202/article/details/134931709

静态代码分析

ida pro

[Disassemblers] IDA Pro 9.0 RC1 全平台安装包 及 patch脚本

安装过程不再赘述

将要分析的二进制文件拖入 IDA Pro 中,等待分析完成。

IDA PRO 示意图

  • 按下 F5 可以展示当前函数 C 伪代码

IDA PRO 示意图

  • Shift + F12 可以展示当前程序的字符串

IDA PRO 示意图

  • 在反汇编窗口按下空格可切换视图

IDA PRO 示意图

静态代码分析

gdb

前面的文章中已经介绍了如何使用 GDB 进行调试,这里不再赘述。

从零开始的 Pwn 之旅 - 掌握调试器 gdb 的基本使用

Pwn 相关工具

pwntools

1
pip install pwntools

checksec

当安装了 pwntools 之后,可以使用 checksec 命令来检查二进制文件的安全特性。

1
2
3
4
5
6
7
8
$ pwn checksec main
[*] '/home/lhon901/Code/cpp/main'
    Arch:       amd64-64-little
    RELRO:      Partial RELRO
    Stack:      No canary found
    NX:         NX enabled
    PIE:        No PIE (0x400000)
    Stripped:   No

ROPGadget

当安装了 pwntools 之后,可以使用 ROPGadget 命令来查找 ROP gadget。

1
2
3
4
5
6
7
8
$ ROPgadget --binary ./main --only "pop|ret"
Gadgets information
============================================================
0x000000000040111d : pop rbp ; ret
0x000000000040101a : ret
0x0000000000401042 : ret 0x2f

Unique gadgets found: 3

LibcSearcher

LibcSearcher