![]() |
Re: EXE Patchen (nichts illegales!!)
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. |
Re: EXE Patchen (nichts illegales!!)
Ok Danke für diese einleitende info
Aber es ist doch grundsätzlich möglich, wie ich es jetzt gemacht hab, ein Programm in OllyDbg zu laden und die Adresse herauszufinden, diese dan in mein Delphi Programm schreiben und gut is (vorausgesetzt das es NOP's braucht) Und nochwas... Mit diesem "grundcode" kann ich ja praktisch jede EXE beliebig Patchen.... Wenn ich nun anstelle des NOP's zb was anderes haben möchte, was muss ich dan wie ändern? Also $90; // $90 = nop aber woher weiss ich was die anderen sind? Entschuldige mich jetzt schon für alfällige genervte gemüter :D |
Re: EXE Patchen (nichts illegales!!)
Einfachste Möglichkeit wäre in meinen Augen, den entsprechenden Code zu assemblieren und mit einem Hex-Editor wieder auszulesen. :stupid:
Oder du gehst den Weg über die Dokumentationen von Intel, was dann der Professionellere wäre. |
Re: EXE Patchen (nichts illegales!!)
Jo stimmt.. hast recht
Ich werd mal n bissel experimentieren... Danke an alle die geholfen haben |
Re: EXE Patchen (nichts illegales!!)
Benutz OllyDbg um die Hex-Codes rauszufinden. Einfach Leertaste im CPU fenster drücken, danach deinen Assembler befehl z.B mov eax, dword ptr [0x12345678] und Enter und dann siehst du die Hex-Codes wie zum Beispiel:
Zitat:
|
Re: EXE Patchen (nichts illegales!!)
Zitat:
Grundlegend zu Intel-Architektur wäre ja ![]() |
Re: EXE Patchen (nichts illegales!!)
Gut Danke für den Link
Ich hätte noch ne Frage zum "grundcode" Wo steht da das $90 = NOP ? Habs nirgends gefunden... ich will eben nun bei einer adresse , wo 74 49 steht 75 49 hinmachen.... grüsschen |
Re: EXE Patchen (nichts illegales!!)
Die Manuals sind auch nicht einfach zu lesen.
Die Erklärung zu NOP findest du im "Architectures Software Developer's Manual Volume 2B: Instruction Set Reference, N-Z" auf Seite 7. Oder im selben Dokument in der OpCodeMap auf Seite 600. Zitat:
|
Re: EXE Patchen (nichts illegales!!)
Nee ich mein nicht wo in den Manuals NOP erklärt is sondern wo im
geposteten Code NOP steht Also wie muss ich den geposteten code abändern damit anstelle von nop 74 49 in 75 49 umgewandelt wird.... Und noch ne frage.... Wen ich in OllyDbg EB 21 eingebe, dan bedeutet das JMP 00401044 die adresse wo JMP steht is 00401021 Weshalb is 21 die adresse 00401044 ? Danke schonmal :D |
Re: EXE Patchen (nichts illegales!!)
Das ist ein Jump relativ zur derzeitigen Adresse: Der Befehl selbst ist zwei Byte lang (=vier hexadezimale Ziffern) und dazu nochmal 21 drauf, dann kommst du auf die neue Adresse.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:45 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz