Hexcode editieren

Hallo,
wollte von ner EXE den Code editieren und Titelleiste des Programms anpassen, also nur harmlose Stringsdie keinerlei Bedeutung für den Programmablauf haben ändern.
Leider schrotte ich damit teilweise die Applikation. Ein paar Strings kann ich ändern, sofern ich mich an die Länge des vorherigen halte, andere wiederum nicht, selbst wenn Sie gleichlang sind.

Woher kommt das, welchen Schutz hat das Programm da mitbekommen?
 
dann musste das ganze erst decompilieren
ich glaub aber bei C heißt das disassemblieren (hm? das heißt ja C wird in Assembler umgewandelt)
such einfach mal bei Google
 
Nein, muss man nicht, bzw. nicht in meinem Fall.
Beim disassemblieren wird alles in Assembler übersetzt, dann kann man das Programm versuchen zu verstehen, besser als Hexcode.
Da ich aber nur Teile ändern will die ich auch im Hexcode sehen bzw. zu deuten weiß ist es überflüßig.
Ich will nicht den Funktionsablauf nachvollziehen, lediglich ein paar Strings ändern.
 
Ein paar Strings kann ich ändern, sofern ich mich an die Länge des vorherigen halte, andere wiederum nicht, selbst wenn Sie gleichlang sind.
Im Prinzip sollten alle gehen, solange man die terminierende 0 nicht überschreibt, allerdings wirst Du wohl nicht ums disassemblieren drumherumkommen, wenn Du verstehn willst, warum manche Strings nicht geändert werden können. Ein CRC Check sollte es nicht sein - da man sonst gar nichts ändern könnte. Es könnte aber je nach Programmiersprache und benutzen Libs sein (mir fallen da auf anhieb VCL von Borland), dass manche "Namen" auch intern als Bezeichner verwendet werden. Solange die EXE keine "Ausnahme" ala NET Programm darstellt, kann man sich den Versuch zu decompilieren sowieso sparen ;)
 
Danke, ja Du hast recht, die Strings waren teilweise untereinander verknüpft, und würden an anderen Stellen erneut verwendet, dazu kommt das das ganze mit Borland compiliert wurde.
Bis ich mich durch den Assembler gelesen hätte wären Wochen vergangen, habe ein bischen rumgespielt, da ich erst gerade in den Kram einsteige vielleicht nicht die schlechteste Variante.

Ist es den Möglich auch noch weitere Funktionen hinzuzufügen, also das zB. sich ein Dialog beim Start auftut oder muss ich das dann dis- und assemblieren? Habe mir gedacht die Funktion in Hexcode zu übersetzen und am Ende einzufügen oder so, ganz dumm oder nur ein bischen?
 
...ganz dumm ;)
Das ist so, als würdest Du beim 4Zylinder-Auto och nen 4Zylinder-Motor an einer Strippe hinter Dir herziehen und meinen, Du hättest jetzt nen 8Zylinder.
 
Ist es den Möglich auch noch weitere Funktionen hinzuzufügen, also das zB. sich ein Dialog beim Start auftut oder muss ich das dann dis- und assemblieren?
Hm, je nach Applikation ist es erheblich einfacher, selber so eine Applikiation zu schreiben (mit dem Dialog) ;)
Grundsätzlich ist nicht viel mit "dis- und dann wieder assemblieren" (zumindest ist mir kein Disassembler bekannt, der "fetigen", TASM/MASM/XXX fähigen Code ausspuckt,), eigene Funktionen einzufügen wäre möglich, aber nicht so einfach wie Du es Dir vorstellst (als Hex anhängen wird nicht klappen) - das fängt schon mit den APIs/DLL Funktionen an (und die verwendet man unter Windows praktisch immer, um ein Dialog anzuzeigen) - die müsstest Du in die IAT des Programms einfügen oder "Viruslike" selber suchen. Dann dürfte Dein angehängter Code keine absoluten Adressierungen enthalten - hier kommt man IMHO nicht um Assembly rum.. Am einfachsten wäre hier deshalb eine DLL Injektion bzw. verwendung von einem Loader - aber wenn Du z.B das Programm um zustäzliche Dialoge und Berechnungen erweitern willst, wird es kein Spass sein.
 
Wenn du nur bestimmte Dinge wie Captions ändern willst, kannst du es mal mit ResHacker probieren. Funktioniert bei einigen Programmen, sofern nicht gepackt, encrypted, protected.

root
 
[tip] CodeBreakers-Journal

hab mir mittlerweile einige artikel dort durchgelesen und kann die seite nur weiterempfehlen.
sehr gute und interessante artikel zum reverse engineering und zu verwandten themen.

sehr interessant zum beispiel wie sie dort mal den umgekehrten weg gehen, und aus dem normalen notepad von windows eine shareware version mit zusätzlichen dialogen machen.
 
Zurück
Oben