AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

EXE Patchen (nichts illegales!!)

Ein Thema von hedie · begonnen am 30. Dez 2007 · letzter Beitrag vom 31. Dez 2007
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#11

Re: EXE Patchen (nichts illegales!!)

  Alt 30. Dez 2007, 14:04
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.
  Mit Zitat antworten Zitat
hedie

Registriert seit: 12. Dez 2005
Ort: Schweiz
1.024 Beiträge
 
Delphi XE6 Starter
 
#12

Re: EXE Patchen (nichts illegales!!)

  Alt 30. Dez 2007, 14:14
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
Claudio
Tu was du nicht lassen kannst
- http://endasmedia.ch
  Mit Zitat antworten Zitat
Benutzerbild von Mao
Mao

Registriert seit: 4. Dez 2006
Ort: Dresden
75 Beiträge
 
Turbo Delphi für Win32
 
#13

Re: EXE Patchen (nichts illegales!!)

  Alt 30. Dez 2007, 14:20
Einfachste Möglichkeit wäre in meinen Augen, den entsprechenden Code zu assemblieren und mit einem Hex-Editor wieder auszulesen.
Oder du gehst den Weg über die Dokumentationen von Intel, was dann der Professionellere wäre.
Ein chinesisches Sprichwort sagt: Ein Weiser, der alle Dinge gesehen hat gleicht dennoch nicht dem Manne, der ein einzigstes Ding mit seinen eigenen Händen geschaffen hat.
---
Günstige Domains, Webhosting und Teamspeak-Server - info@max06.de!
  Mit Zitat antworten Zitat
hedie

Registriert seit: 12. Dez 2005
Ort: Schweiz
1.024 Beiträge
 
Delphi XE6 Starter
 
#14

Re: EXE Patchen (nichts illegales!!)

  Alt 30. Dez 2007, 14:21
Jo stimmt.. hast recht

Ich werd mal n bissel experimentieren...

Danke an alle die geholfen haben
Claudio
Tu was du nicht lassen kannst
- http://endasmedia.ch
  Mit Zitat antworten Zitat
Benutzerbild von ErazerZ
ErazerZ

Registriert seit: 27. Mai 2005
Ort: Baden
315 Beiträge
 
Delphi 2007 Enterprise
 
#15

Re: EXE Patchen (nichts illegales!!)

  Alt 30. Dez 2007, 14:22
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:
00401054 A1 78563412 MOV EAX,DWORD PTR DS:[12345678]
Wie dir aufgefallen ist, ist hier der Befehl 0xA1, und der Rest ist die Adresse (78563412 - verkehrt gelesen heißt es 12 34 56 78). Die Virtuelle Adresse ist natürlich 00401054.
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#16

Re: EXE Patchen (nichts illegales!!)

  Alt 30. Dez 2007, 14:42
Zitat von hedie:
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?
Naja, irgendwie müssen ja auch die Compiler/Assembler wissen wie sie den Code für den Prozessor (und das BS) vorbereiten.
Grundlegend zu Intel-Architektur wäre ja diese Seite zu empfehlen. Aber bevor du hier fließend IA-32 oder IA-64 beherrschst kannst du erstmal einfach in Debuggern schauen, wie welche Befehle als OpCode aussehen.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
hedie

Registriert seit: 12. Dez 2005
Ort: Schweiz
1.024 Beiträge
 
Delphi XE6 Starter
 
#17

Re: EXE Patchen (nichts illegales!!)

  Alt 30. Dez 2007, 17:41
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
Claudio
Tu was du nicht lassen kannst
- http://endasmedia.ch
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#18

Re: EXE Patchen (nichts illegales!!)

  Alt 31. Dez 2007, 11:23
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:
Habs nirgends gefunden... ich will eben nun bei einer adresse , wo 74 49 steht 75 49 hinmachen....
und was hilft dir dabei zu wissen wo in den Manuals NOP erklärt wird?
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
hedie

Registriert seit: 12. Dez 2005
Ort: Schweiz
1.024 Beiträge
 
Delphi XE6 Starter
 
#19

Re: EXE Patchen (nichts illegales!!)

  Alt 31. Dez 2007, 11:31
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
Claudio
Tu was du nicht lassen kannst
- http://endasmedia.ch
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#20

Re: EXE Patchen (nichts illegales!!)

  Alt 31. Dez 2007, 11:45
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.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:10 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz