pwntools の使い方 (基礎編)

pwntools を使った基本的な解析についての覚え書き

検証環境

インストール

pip install pwntools
        

セキュリティチェック

pwn checksec $FILE
        

確認事項としては

が一番基本的な部分

プログラムの開始

from pwn import *

sh = process($FILE)
        
host = $HOST
port = $PORT # int

sh = remote(host, port)
        

データの受信

prompt = sh.recvuntil("input:")

print(prompt.decode())
        

データの送信いろいろ

payload = "test".encode()
sh.sendline(payload)
        
print(p32(0xdeadbeef)) # b'\xef\xbe\xad\xde'
print(p64(0xdeadbeef)) # b'\xef\xbe\xad\xde\x00\x00\x00\x00'
        

gdb を用いてスタックを調べる

gdb.attach(sh, gdbscript="""
break *main+111
c
""")