pwn exp&工具&调试
exp:
from pwn import *#导入pwn库
from LibcSearcher import*
import ctypes
import time
context(arch='amd64', os='linux', log_level='debug')#说明架构、系统 #32位arch=‘i386’
file_name = './pwn'#文件名
li = lambda x : print('\x1b[01;38;5;214m' + str(x) + '\x1b[0m')#类似print,以不同的颜色输出
ll = lambda x : print('\x1b[01;38;5;1m' + str(x) + '\x1b[0m')
context.terminal = ['tmux','splitw','-h']#使用tmux分左右两屏调试
#控制本地 or 远程
debug = 0
if debug:
r = remote('node4.buuoj.cn', 26870)
else:
r = process(file_name)
elf = ELF(file_name)#获取文件的elf信息,包括函数地址、plt和got地址、程序某个地址等内容等
#定义调试函数,后续直接调用该函数即可调试
def dbg():
gdb.attach(r)
def get_addr() :
return u64(r.recvuntil(b'\x7f')[-6:].ljust(8, b'\x00'))
#交互
r.interactive()