Seite 2 von 3
Verfasst: 22.10.2004 12:08
von sbehrens
Aber man kann deine *.exe mit einem Disassembler "disassembeln". Zum Beispiel mit:
http://home.t-online.de/home/Ollydbg/ . OllyDbg ist zwar direkt kein Disassembler, eher ein Debugger, aber man kann sich den Assembler Code auch anschauen/ändern.

Muss man "nur" noch ASM lernen

.
mfG
Basti
Verfasst: 22.10.2004 17:33
von nco2k
@GPI
böse böse.
@freedimension
weiss ich doch.
@Rob
das wär mal eine tolle erfindung! ein schwein, welches sich zu hackfleisch verarbeiten lässt und wieder zurück. ich als überzeugter vegetarier, würde das sehr begrüssen.
@ptI
so was hilft aber auch nur im besten falle, um die exe wieder "nachzubauen" soweit ich weiß.
c ya,
nco2k
Verfasst: 22.10.2004 17:53
von Maurizio555
Es gab mal ein Prog, um .exe-Dateien in C umzuwandeln. Diese waren dann nicht in "besten Programmierstil" und die ganze Formattierung ging verloren, aber in den DOS-Zeiten wurde es von so mancher Hacker öfter gebraucht...
Ich glaube aber nicht, daß es so was auch für Progs gibt, die auch GUI-Elemente enthalten und so.
Gott sei Dank

Verfasst: 22.10.2004 18:29
von MVXA
natürlich kann man auch GUI elemente wieder rekonstruieren. GUI elemente werden normalerweise über WindowsAPI erstellt oder von WindowsAPI aus den resourcen gelesen. So wie es C tut.
ich wollte diese diskussion noch mal kurz aufgreifen ...
Verfasst: 17.12.2005 15:01
von hiltwin
...
was kann man denn so aus einer .exe wieder reproduzieren?
Hilft ja auch nix, wenn jemand einem die ganze Programmstruktur klaut und dann nur ne neue GUI aufsetzt ...
Verfasst: 17.12.2005 16:09
von Eric
In der exe ist (bis auf die Kommentare) fast alles drin.
Allerdings wandelt der Compiler den Code in Assembler/Maschienensprache um
und verändert/optimiert dabei auch einiges.
So werden alle Variablen-, Label-, Prozedur- und sonstewas-namen
durch Speicheradressen ersetzt, Konstanten und mathematische Ausdrücke werden aufgelöst.
GUI Sachen werden entweder als Resource gespeichert, oder durch WinAPI-Aufrufe
erzeugt.
Allerdings werden auch die verwendeten Libs gelinkt, die exe enthält also nicht nur
den Code sondern auch die Bibliotheken.
Die Programmstruktur bleibt größtenteils erhalten.
Mit einigen Aufwand sollte es möglich sein, Programmteile wieder in PB-Code
umzuwandeln. PB erzeugt eine Assembler-Ausgabedatei, in der exe ist genau dieser
Assemblercode enthalten (bis auf die Variablen-, Funktions- ... Namen).
Allerdings ist der Aufwand zum zurückumwandeln recht groß und normalerweise
ist es einfacher, das Programm neu zu schreiben, als es aus dem Assemblercode
zu übersetzen.
Hallo Eric ...
Verfasst: 17.12.2005 16:30
von hiltwin
... vielen Dank für die ausführliche Antwort.
Allerdings bezog sich die Frage nach dem Rückwandeln nicht darauf, es wieder in PB zu bekommen.
Kann man über Assembler/Maschinensprache entsprechend mit eher geringem Aufwand bei einem Programm die Programmabläufe erkennen und modifizieren?
Beispiel: Umwandlungsprogramm von Längen- und Gewichtsmassen. Man nimmt sich aus einem fremden Programm in Assembler/Maschinensprache die gesamten Formeln und setzt nur eine eigene GUI auf, in der die Nutzerwünsche abgefragt werden?
Das das weder legal noch loyal noch ehrenhaft ist, ist bekannt. Möchte mich nur über den Stand der Technik schlau machen ...
So müsste es gehen
Verfasst: 18.12.2005 14:25
von AND51
Mir ist schon dasselbe passiert: ich hatte umfangreiche Änderungen am Programm nicht gespeichert, sondern immer nur neu kompiliert, weil ich erst dann abspeichern wollte, wenn die Änderungen auch funktionierten. Dummerweise wollte ich dann den PB Editor schließen und habe auf "Nein" geklickt, als der Editor mich frage, ob ich den die Änderungen nicht speichern wolle.
Ja, da hab ich mich vielleicht aufgeregt...
Aber naja, so ist das eben, diese (oder ähnliche) Erfahrung wird sicherlich schon jeder gemacht haben.
OK, nun also zur Lösung: Ich bin einfach in das Verzeichnis von PureBasic gegangen (C:\Programme\Purebasic\) und habe dort im Verzeichnis Compilers\ die Datei "PB_EditorOutput.pb" gefunden, in der meine "nicht gespeicherten Änderungen" enthalten waren.
Wichtig: Man darf nach einem wie oben beschriebenen Patzer nichts anderes kompilieren, sonst wird diese Datei überschrieben! Diese Datei speichert den aktuellen Sourcecode, wenn man ihn kompiliert.
Verfasst: 15.01.2006 13:36
von Wespe23
Rob hat geschrieben:Genausowenig kann man aus Hackfleisch wieder ein Schwein oder aus Salat wieder ein Gemüsebeet machen...
gutes Beispiel...
Und zum Problem: Ich weiß, dass es zu spät ist, aber du hättest - nachdem du den Source zur EXE gemacht hast - den *.PB noch in ..\Eigene Dateien speichern können, das mach ich auch immer

Verfasst: 15.01.2006 15:40
von nco2k
mit dem nächsten release (nach v4.00) soll eine backup option in der ide erscheinen, womit das problem ein für alle mal gelöst wäre.
c ya,
nco2k