Sorry sieht so aus als währe das Feature in Windows gestrichen worden. Habs grad mal ausprobiert mit XP Pro, funktioniert nicht.
How ever. Hier mal der Testcode:
Modifiziert eine exe so das sie sich bearbeiten lassen sollte, wenn sie läuft.
Funktioniert aber leider nicht.
Code: Alles auswählen
;/-------------------\
;| Make PE Writable |
;| |
;| Version 1.00 |
;| by Thorium |
;| |
;| PureBasic 4.20 |
;\-------------------/
EnableExplicit
#IMAGE_DOS_SIGNATURE = $5A4D
#IMAGE_NT_SIGNATURE = $00004550
#IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP = $0400
Define.l hFile,HeaderOffset
Define.w Characteristics
;open the file
hFile = OpenFile(#PB_Any,"c:\your.exe")
If hFile = 0
MessageRequester("Error","Can't open file!",16)
End
EndIf
;check if file is a executable
If ReadWord(hFile) <> #IMAGE_DOS_SIGNATURE
MessageRequester("Error","File is not a executable!",16)
End
EndIf
;read offset of PE header
FileSeek(hFile,$3C)
HeaderOffset = ReadLong(hFile)
If HeaderOffset = 0
MessageRequester("Error","File is not a PE!",16)
End
EndIf
;check if file is a PE
FileSeek(hFile,HeaderOffset)
If ReadLong(hFile) <> #IMAGE_NT_SIGNATURE
MessageRequester("Error","File is not a PE!",16)
End
EndIf
;read characteristics from PE header
FileSeek(hFile,HeaderOffset + $16)
Characteristics = ReadWord(hFile)
;add IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP to characteristics
Characteristics = Characteristics | #IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP
;write characteristics to PE header
FileSeek(hFile,HeaderOffset + $16)
WriteWord(hFile,Characteristics)
;close file
CloseFile(hFile)
MessageRequester("Make PE Writable","Done!")
End
Zu mir kommen behinderte Delphine um mit mir zu schwimmen.
Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke!
