Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Eigenes Programm "patchen" (https://www.delphipraxis.net/103062-eigenes-programm-patchen.html)

Klaus01 9. Nov 2007 12:37

Re: Eigenes Programm "patchen"
 
Wenn Du ein Programm patchen willst (um einen Fehler zu beheben oder ähnliches)
mußt Du eine Differenz (Byteweise) vom jetzigen Programm zum neuen Programm bilden.

Mit dem Patchprogramm wird das alte Programm dann so angepasst, das es dem neunen entspricht.

Aber es ist schon recht ungewöhnlich. Auf PC werden in der Regel die Dateien ausgetauscht.
Gepatcht wird eher auf Großrechnern (das wird auch im RAM repatcht).

Grüße
Klaus

sirius 9. Nov 2007 12:48

Re: Eigenes Programm "patchen"
 
Vor allem lernst du da Windows kennen.

Also du musst den Aufruf von showmessage unterbinden. Das sind 5 Bytes. U den Stack brauchen wir uns nicht zu kümmern, weil wir haben weniger als 4 Argumente. Jetzt müssen wir nur noch den Aufruf im Programm finden.

Also Varianten:
1. Du legst eine Konstante (am besten in ASM) vor oder nach den Aufruf und durchsuchst dann die Exe.
2. Du erfasst die Adresse im ausführbaren Code und rechnest danna uf den Patz in der Exe zurück
3. Kombination aus 1 und 2

Allerdings kannst du natürlich nicht in deiner Exe rumwerkeln solange das Programm läuft. Das bedeutet, du musst einen neuen Process starten, der dann die Exe verändert und dann dein geändertes Programm startet.

dominikkv 9. Nov 2007 12:51

Re: Eigenes Programm "patchen"
 
bei den JEDIS gibts nen TJvPatchFile, vllt hilft das weiter

Nuclear-Ping 9. Nov 2007 13:48

Re: Eigenes Programm "patchen"
 
Zitat:

Zitat von delphinia
Das wäre aber nicht sinnd er Übung *g*

Was willst du denn üben? Delphi oder ASM und PE/COFF-Formate?

Wenn du ersteres üben willst, dann nimm - wie schonmal gesagt wurde - die ShowMessage raus und ersetze halt die alte Exe mit der neuen.
Alles andere wäre (vorallem zum üben) wahnsinn. Ich behaupte mal, du stehst grad auf dem Schlauch. :P

Auch wenn hier Leute von Disasm usw. reden, für'n Anfänger ist das garantiert nix. Weiterhin kannst du damit auch nur kleine Stellen auf Assembler-Ebene der Exe ändern, aber kaum große Änderungen vornehmen.

alias5000 9. Nov 2007 14:29

Re: Eigenes Programm "patchen"
 
öhm, ich will ja nicht bei eurer Diskussion stören, aber reicht zu dem Spaß nicht eine Batch-file o.ä. , die nach dem Beenden des Programms die neue Exe drüberkopiert?


...gruß
alias5000

Nuclear-Ping 9. Nov 2007 14:31

Re: Eigenes Programm "patchen"
 
Klar geht das. Unter Windows 95, 98, ... unter NT+ nur mit Adminrechten und unter Vista garnicht mehr.

sirius 9. Nov 2007 14:32

Re: Eigenes Programm "patchen"
 
Zitat:

Zitat von alias5000
öhm, ich will ja nicht bei eurer Diskussion stören, aber reicht zu dem Spaß nicht eine Batch-file o.ä. , die nach dem Beenden des Programms die neue Exe drüberkopiert?

Du kannst gerne stören :cyclops:
Aber der TE wollte ja nicht kopieren, sondern patchen.
und [roter Kasten]


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:30 Uhr.
Seite 2 von 2     12   

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