Du solltest dir mal dringend ansehen, wie das Exe-Format aussieht. Prinzipiell wichtig für dich jetzt erstmal ist zu wissen, dass die EXE in sogenannte Sections unterteilt sind. Das ind einfach zusammenhängende Teile von Code oder Daten (und noch anderes). diese Teile werden (meist) 1:1 in deinen virtuellen Adressraum kopiert (was z.B. deiner Adresse "004012AF" entspricht) Wo der Teil landet steht in den Headern zu jeder Section. Also z.B. so:
Section 1 steht in der Datei ab Byte $3000 (das wäre das FileOffset) und wird in den Virtuellen Adressraum ab Byte $00401000 kopiert und es ist 1024 Bytes lang.
Daraus kannst du jetzt zurückrechnen, wo deine zu patchenden Bytes in welcher Section und damit an welchem FileOffset liegen. Besipielcode steht bereits oben (ob der richtig, weis ich nicht; gibts auch noch mehrmals in der
DP)
Edit: Aber ganz so einfach sind die
PE-Header nicht aufgebaut. Prinzipiell musst du dir aber die oben genannten Informationen zusammensuchen und zusammenrechnen.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.