(這裡)[https://github.com/Gallopsled/pwntools?tab=readme-ov-file]
請問 markdown 的 「超連結語法」 是一種 usb 語法嗎 我每次都打反
context.log_level = 'debug'
可以看到詳細的debug
狀態
可以直接使用下面這個,會直接幫你設定好
開一個 ELF File,並且交由變數
e
管理
常使用於
libc.so.x
,我們可以很簡單的去 Parse 這個 Dynamic Library,然後找到好用的 gadget (e.g.bin/sh
)
這邊可以把 leak 出來的 libc base address assign 給
address
這個 member variable
設定好 address 後,因為符號與整個檔案的相對位置不會改變,所以可以使用
symbols[symbolname]
,去找你想要的 symbol address
p = process("/path/2/ur/binary")
把 binary 跑起來,並且交由變數p
管理
p = remote('ip','port')
遠端連線到指定 ip:port
傳送
ur_payload
給 process
send
&sendline
差別在於最後有沒有換行(\n
)
在接收到
>
後傳送ur_payload
給 process
TODO: b'a'
and str(a)
的差別 (一個是 send byte,一個是 send string)
p.recv()
接收 process 的 data,並且把 data 交由變數recv
管理
p.recv(N)
設定接收 N 個 Bytes
p.recvline()
接收一整行
p.recvuntil(b'w')
接收 data 直到w
,假如 Process 發送的資料是hello,world
,那我們會接收到hello,w
p.interactive()
讓我們可以直接與 process interactive
p32
就是把 data pack 成 32-bits 小端的資料型態
u32
就是p32
的 逆運算
如果要 pack 成 64-bits 就使用
p64
&u64
每次寫完 expolit 都自己爛掉,我都要額外 attach 上去看哪裡有問題 = =
然後也可以下 pause()
,然後 gdb -p pid
attach 上去