![]() |
Strings in EXE verändern
Ich suche eine Möglichkeit Strings (keine Ressourcen) in einem bereits kompiliertem Programm zu modifizieren.
Die Stringlänge verändert sich dabei, sonst wärs ja einfach. :roll: |
Re: Strings in EXE verändern
nimmste du einfach pchars
die werden mit nem #0 beendet musst nur nen langen vorgespeicherten string nehmen |
Re: Strings in EXE verändern
Das Problem ist, das die Strings im Programmcode eingebettet sind. Wenn ich jetzt einfach die Länge des Strings verändern würde (per Hexeditor), dann würden ja alle Jumps, die auf eine Adresse nach dem String zeigen, nach der Änderung nicht dahin zeigen, wo sie hinzeigen sollen (Ich hoffe ihr versteht mich ;)).
|
Re: Strings in EXE verändern
nein solange der speicher des strings nicht vergrößert wird funktioniert das
nehmen wir an die EXE beinhaltet den String AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA dann kannst du den einfach durch z.b. Hallo#0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA ersetzen (wobei #0 nich '#0' sondern hexwert 0 darstellt) hast du es vorher als var bla: pchar = 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'; deklariert geht das da #0 das ende des strings bedeutet |
Re: Strings in EXE verändern
Das Problem ist aber das ich den String vergrößern muss. :P
|
Re: Strings in EXE verändern
Ja, das kannst du doch auch.
Die Idee von brechi ist doch einfach einen langen String bei der Kompilierung in die EXE zu schreiben. Dann kannst du deinen String verkleinern und später auch wieder verlängern. Allerings eben nur soweit verlängern, wie du bei der Kompilierung maximal zugelassen hast. Anders wird das nicht gehen. MfG Thorsten |
Re: Strings in EXE verändern
Ich besitze nur die EXE und nicht den Sourcecode.
|
Re: Strings in EXE verändern
dann wirds nicht ohne viel arbeit (debuggen etc.) gehen
|
Re: Strings in EXE verändern
Zitat:
|
Re: Strings in EXE verändern
Ist es denn nicht möglich den Code zu disassemblieren, die Strings zu ändern, und dann wieder zu reassemblieren?
Zitat:
|
Re: Strings in EXE verändern
ohne ein bisschen kenntnisse mit assembler und dem aufbau einer exe wirste das nicht hinbekommen,
würdest du das wissen, würdest hier nicht fragen - von daher wirste das wohl nicht schaffen |
Re: Strings in EXE verändern
Das ist schlecht. Sehr schlecht. :(
|
Re: Strings in EXE verändern
Wenn an der Stelle, an der der String steht, nicht genug Platz ist, dann schreibe ihn doch woanders hin (z.B. an das Ende des Code-Section, da ist normalerweise der Rest der 4K-Page unbenutzt). Du musst dann nur mit 'nem Disassembler alle Verweise auf die alte Adresse finden und auf die neue umbiegen.
Aber wie brechi schon schreibt - du solltest wissen was du tust. |
Re: Strings in EXE verändern
Soweit ich das hier erkennen kann werden die Adressen der beiden Strings die ich verändern muss nur jeweils einmal benutzt - in einer push-Anweisung.
|
Re: Strings in EXE verändern
dann mussu die push anweisung ändern zu dem bereich wo du den string hinkopiert hast
|
Re: Strings in EXE verändern
Der Code-Block startet bei 01000h und hört bei 53FFFh auf - kann ich danach gefahrlos die Strings anhängen?
|
Re: Strings in EXE verändern
Wenn der string in der EXE drin ist und nicht in INI usw., dann ist es mit Sicherheit nicht erwünscht daran was zu ändern. Würdest du bei einem Programm von mir sowas machen, dann würde es dir um die Ohren fliegen. Laufen würde es nicht mehr. Die Frage würde dann nur etwas anders lauten : "Ich habe einen String geändert und mein Programm geht jetzt nicht mehr". Mehr sag ich nicht. :mrgreen: Es gibt ganz einfache Mittel, auf so etwas zu regieren und/oder das Datum festzuhalten. 8)
|
Re: Strings in EXE verändern
Sag lieber, es war nicht vorauszusehen. :P Jedenfalls ist die Änderung nötig, und ich kann den Programmierer von dem Programm nicht mehr erreichen (untergegangen? :drunken: ), und bin jetzt wohl gezwungen das ganze selbst zu ändern.
Zitat:
|
Re: Strings in EXE verändern
zieh dir olly
pack den string mitm hexeditor ganz an den schluss der EXE (wo die ganzen 00en sind) starte exe mit olly und schau wo der string im speicher ist (oder rechne es selbst über die sections um) pushe die neue adresse anstatt der alten |
Re: Strings in EXE verändern
Habs jetzt glaube ich mit einem Hexeditor spartanischster Art (richtig karg) geschafft...
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:27 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