mirror of
https://github.com/cea-sec/miasm
synced 2026-06-21 13:48:18 +00:00
26 lines
842 B
Python
26 lines
842 B
Python
import sys
|
|
|
|
from argparse import ArgumentParser
|
|
from miasm.loader import pe_init
|
|
|
|
|
|
parser = ArgumentParser(description="Create a PE from a shellcode")
|
|
parser.add_argument("filename",
|
|
help="x86 shellcode filename")
|
|
parser.add_argument("-p", "--pename",
|
|
help="new PE filename (default is 'sc_pe.exe')",
|
|
default="sc_pe.exe")
|
|
parser.add_argument("-w", "--word-size",
|
|
help="word size (default is 32 bits)",
|
|
choices=[32, 64],
|
|
type=int,
|
|
default=32)
|
|
args = parser.parse_args()
|
|
|
|
|
|
data = open(args.filename, 'rb').read()
|
|
pe = pe_init.PE(wsize=args.word_size)
|
|
s_text = pe.SHList.add_section(name="text", addr=0x1000, data=data)
|
|
pe.Opthdr.AddressOfEntryPoint = s_text.addr
|
|
open(args.pename, 'wb').write(bytes(pe))
|