from pwn import * context.clear(arch='amd64') shellcode_path = "./sc" elf_path = "./exploit" elf = ELF(elf_path) assert(elf.elfclass == 64) loader = shellcraft.loader_append(elf.data, arch='amd64') sc = asm(loader) print(f"ELF size: {len(elf.data)} bytes") print(f"Loader shellcode size: {len(sc)} bytes") print(f"Shellcode written to {shellcode_path}") with open(shellcode_path, "wb") as f: f.write(sc)