一般流程

chmod u+x
checksec
sudo -s echo 0 > /proc/sys/kernel/randomize_va_space
sudo vmhgfs-fuse .host:/ /mnt/hgfs -o subtype=vmhgfs-fuse,allow_other

Chromium OS Docs - Linux System Call Table

泄露libc
libc database search

系统调用
Chromium OS Docs - Linux System Call Table
速查源码
Glibc source code (glibc-2.41.9000) - Bootlin Elixir Cross Referencer

编写exp

from pwn import *

context(os='linux', arch='amd64', log_level='debug')
context.terminal = ["tmux", "splitw", "-h"]

p=process('./')
p=remote('ip',port)
elf = ELF('./')
libc = ELF('./')

#====================================================================
li = lambda x : print('\\x1b[01;38;5;214m' + x + '\\x1b[0m')
ll = lambda x : print('\\x1b[01;38;5;1m' + x + '\\x1b[0m')
s = lambda s : p.send(s)
sl = lambda s : p.sendline(s)
sa = lambda n,s : p.sendafter(n,s)
sla = lambda n,s : p.sendlineafter(n,s)
r = lambda n : p.recv(n)
rl = lambda : p.recvline()
ru = lambda s : p.recvuntil(s)
ra = lambda : p.recvall()
ia = lambda : p.interactive()
uu32 = lambda data : u32(data.ljust(4, b'\\x00'))
uu64 = lambda data : u64(data.ljust(8, b'\\x00'))
# u64(p.recvuntil(b'\\x7f')[-6:].ljust(8,b'\\x00'))
# u32(p.recvuntil(b'\\xf7'))
def g():
gdb.attach(p)
pause()
#====================================================================
p.interactive()