Documente Academic
Documente Profesional
Documente Cultură
virtual_size = input("enter virtual size in bytes in PE format (8 digits, like 48200000 for 2048):\n")
#defs
def z_pad(num):
tmp=""
for i in range(num):
tmp += "00000000"
return tmp
###start
# DOS header
pe = "4D5A0000"
pe += z_pad(14)
pe +="40000000"
# PE header
pe +="50450000"
pe +="4C01"
pe +=section_num
pe += z_pad(3)
# optional header
pe +="0B010000"#PE32magic - "PE"
pe += z_pad(3)
pe += z_pad(2)
pe +="00004000"#image base
pe +="00100000"#section alignment
pe +="00020000"#fie alignment
pe += z_pad(2)
pe +="04000000"#subsystem version
pe += z_pad(1)
pe +="00200000"#runtime memory
pe +="00020000"#headers size
pe += z_pad(1)
pe += z_pad(5)
#Data directories
pe += z_pad(28)
#Section table
pe +=virtual_size
pe +=virtual_size #raw_size
pe += z_pad(3)
#padding
pe += z_pad(44)
fh = open("pe_header.txt","w+")
fh.write(pe)
fh.close()