def main():
# set current dir
set_home()
# read file
data = get_file_data(path)
# get pefile infos
pe_info = pefile.PE(data = data, fast_load=False)
#--------------------------------------
#TimeDateStamp
#clean from whole file
TimeDateStamp = pe_info.FILE_HEADER.TimeDateStamp
#raw to byte string
TimeDateStamp = struct.pack('I',TimeDateStamp)
new_data = data.replace(TimeDateStamp,'\x00\x00\x00\x00')
#--------------------------------------
#DEBUG info
if hasattr(pe_info,'DIRECTORY_ENTRY_DEBUG'):
#clean debug datas
for debug in pe_info.DIRECTORY_ENTRY_DEBUG:
d_addr = debug.struct.PointerToRawData
d_size = debug.struct.SizeOfData
new_data = fill_zero(new_data,d_addr,d_size)
#clean debug dir
dir = pefile.DIRECTORY_ENTRY['IMAGE_DIRECTORY_ENTRY_DEBUG']
debug_offset = pe_info.get_offset_from_rva(pe_info.OPTIONAL_HEADER.DATA_DIRECTORY[dir].VirtualAddress)
debug_size = pe_info.OPTIONAL_HEADER.DATA_DIRECTORY[dir].Size
new_data = fill_zero(new_data,debug_offset,debug_size)
#clean links to dir
offset = pe_info.OPTIONAL_HEADER.DATA_DIRECTORY[dir].__file_offset__
size = pe_info.OPTIONAL_HEADER.DATA_DIRECTORY[dir].__format_length__
new_data = fill_zero(new_data,offset,size)
SaveFile(path,new_data)
print '[OK] post-compile\n'
评论列表
文章目录