def OnApplyChangesButton(self, event): dirTable = pedata.getDataDirectory(self.__pe) dirTable[0].VirtualAddress = int(self._exporttable_rva.GetValue(), 16) dirTable[0].Size = int(self._exporttable_size.GetValue(), 16) dirTable[1].VirtualAddress = int(self._importtable_rva.GetValue(), 16) dirTable[1].Size = int(self._importtable_size.GetValue(), 16) dirTable[2].VirtualAddress = int(self._resource_rva.GetValue(), 16) dirTable[2].Size = int(self._resource_size.GetValue(), 16) dirTable[3].VirtualAddress = int(self._exception_rva.GetValue(), 16) dirTable[3].Size = int(self._exception_size.GetValue(), 16) dirTable[4].VirtualAddress = int(self._security_rva.GetValue(), 16) dirTable[4].Size = int(self._security_size.GetValue(), 16) dirTable[5].VirtualAddress = int(self._basereloc_rva.GetValue(), 16) dirTable[5].Size = int(self._basereloc_size.GetValue(), 16) dirTable[6].VirtualAddress = int(self._debug_rva.GetValue(), 16) dirTable[6].Size = int(self._debug_size.GetValue(), 16) dirTable[7].VirtualAddress = int(self._copyright_rva.GetValue(), 16) dirTable[7].Size = int(self._copyright_size.GetValue(), 16) dirTable[8].VirtualAddress = int(self._globalptr_rva.GetValue(), 16) dirTable[8].Size = int(self._globalptr_size.GetValue(), 16) dirTable[9].VirtualAddress = int(self._tlstable_rva.GetValue(), 16) dirTable[9].Size = int(self._tlstable_size.GetValue(), 16) dirTable[10].VirtualAddress = int(self._loadconfig_rva.GetValue(), 16) dirTable[10].Size = int(self._loadconfig_size.GetValue(), 16) dirTable[11].VirtualAddress = int(self._boundimport_rva.GetValue(), 16) dirTable[11].Size = int(self._boundimport_size.GetValue(), 16) dirTable[12].VirtualAddress = int(self._iat_rva.GetValue(), 16) dirTable[12].Size = int(self._iat_size.GetValue(), 16) dirTable[14].VirtualAddress = int(self._com_rva.GetValue(), 16) dirTable[14].Size = int(self._com_size.GetValue(), 16) try: self.__pe.write(self._fp) except IOError, e: raise str(e)
def loadDirectoryData(self): dirData = pedata.getDataDirectory(self.__pe) self._exporttable_rva.SetValue(hex_up(dirData[0].VirtualAddress)) self._exporttable_size.SetValue(hex_up(dirData[0].Size)) self._importtable_rva.SetValue(hex_up(dirData[1].VirtualAddress)) self._importtable_size.SetValue(hex_up(dirData[1].Size)) self._resource_rva.SetValue(hex_up(dirData[2].VirtualAddress)) self._resource_size.SetValue(hex_up(dirData[2].Size)) self._exception_rva.SetValue(hex_up(dirData[3].VirtualAddress)) self._exception_size.SetValue(hex_up(dirData[3].Size)) self._security_rva.SetValue(hex_up(dirData[4].VirtualAddress)) self._security_size.SetValue(hex_up(dirData[4].Size)) self._basereloc_rva.SetValue(hex_up(dirData[5].VirtualAddress)) self._basereloc_size.SetValue(hex_up(dirData[5].Size)) self._debug_rva.SetValue(hex_up(dirData[6].VirtualAddress)) self._debug_size.SetValue(hex_up(dirData[6].Size)) self._copyright_rva.SetValue(hex_up(dirData[7].VirtualAddress)) self._copyright_size.SetValue(hex_up(dirData[7].Size)) self._globalptr_rva.SetValue(hex_up(dirData[8].VirtualAddress)) self._globalptr_size.SetValue(hex_up(dirData[8].Size)) self._tlstable_rva.SetValue(hex_up(dirData[9].VirtualAddress)) self._tlstable_size.SetValue(hex_up(dirData[9].Size)) self._loadconfig_rva.SetValue(hex_up(dirData[10].VirtualAddress)) self._loadconfig_size.SetValue(hex_up(dirData[10].Size)) self._boundimport_rva.SetValue(hex_up(dirData[11].VirtualAddress)) self._boundimport_size.SetValue(hex_up(dirData[11].Size)) self._iat_rva.SetValue(hex_up(dirData[12].VirtualAddress)) self._iat_size.SetValue(hex_up(dirData[12].Size)) self._com_rva.SetValue(hex_up(dirData[14].VirtualAddress)) self._com_size.SetValue(hex_up(dirData[14].Size))