Decompiler
-
wieso?
http://boomerang.sourceforge.net/ schrieb:
As of late 2003, Boomerang will only decompile X86 (Linux/X86 or Windows PE) and SPARC (Solaris, or presumably Linux/SPARC).
ist zwar vermutlich noch eher in der testphase (alpha), aber wird bestimmt noch
---loki
-
Windows PE kenn ich nicht. Kennt denn niemand nen ordentlichen Decompiler?
-
schrankwand schrieb:
Windows PE kenn ich nicht.
LOL
-
schrankwand schrieb:
Windows PE kenn ich nicht.
Das ist der Nachfolger von XP
.
schrankwand schrieb:
Kennt denn niemand nen ordentlichen Decompiler?
Ja, aber nur für Java. Befasse dich etwas mit den Konzepten und du wirst verstehen, warum es nie einen gescheiten Decompiler für deine Bedürfnisse geben wird.
-
Ich will einfach nur irgendwelchen funktionierenden C-Quellcode aus einer exe und ggf. aus dlls generieren. Das kann doch nicht so scher sein. Durch den so erhaltenen Quellcode noch durchblicken zu können ist was anderes.
-
Und wie schwer das ist..
Ein alter BASIC-Compiler hat beispielsweise aus ner PRINT - Anweisung nen Anweisungsblock gemacht, den man durchaus erkennen konnte.
Heutzutage ist aber die Compilertechnik so weit, dass Compiler Code zusammenfasdsen und optimieren.
Weiterhin kann man nicht den gesamten Sprachumfang von C erfassen. Assemblerroutinen oder beispielsweise die printf() Anweisung werden von den meisten Decompilern nicht erkannt, da diese Funktionen ausgelagert und von Compiler zu Compiler anders verarbeitet werden können.
Das Problem hier ist einfach, dass der Computer nicht raten kann.
-
schrankwand schrieb:
Ich will einfach nur irgendwelchen funktionierenden C-Quellcode aus einer exe und ggf. aus dlls generieren. Das kann doch nicht so scher sein.
Aus einem x86-Maschinencode nach sämtlichen Optimierungen etc. einen halbwegs vernünftigen C-Code zu basteln IST schwer, wenn nicht sogar unmöglich. Dass du nicht weißt, was Windows PE ist zeigt imho schon, dass du dir die ganze Sache zu einfach vorstellst, weil du dich nicht hinreichend damit beschäftigt hast. Es gibt viele unfertige Versuche so etwas zu bewerkstelligen, aber die findet man über google (boomerang wurde ausserdem auch schon genannt). Wenn du die nicht bedienen kannst ist das dein Problem.
-
[quote="MaSTaH"]
schrankwand schrieb:
Wenn du die nicht bedienen kannst ist das dein Problem.
Unfreundlich, aber wahr.
Es gibt definitiv Anleitungen zu dem Programm.. Man muss sich halt damit beschäftigen, wenn es einem so wichtig ist...
-
schrankwand schrieb:
Windows PE kenn ich nicht. Kennt denn niemand nen ordentlichen Decompiler?
nur um dir etwas weiterbildung zu gönnen:
Windows PE = "Windows Portable Executable".... alle Win32-.exe-dateien sind PEs.
-
Aha, das würde ja heissen das MaSTaH, der hier so auf schlau gemacht hat, selber nicht weiß was Windows PE ist.
-
schrankwand schrieb:
Aha, das würde ja heissen das MaSTaH, der hier so auf schlau gemacht hat, selber nicht weiß was Windows PE ist.
Ja.... ähh..... genau....
-
schrankwand schrieb:
Aha, das würde ja heissen das MaSTaH, der hier so auf schlau gemacht hat, selber nicht weiß was Windows PE ist.
nicht gerade der richtige weg, sich hier im forum freunde zu schaffen.
also ich kann leider nicht nachvollziehen wie du auf diesen rückschluss kommst...
aber ich bin mir SEHR sicher dass er das durchaus weis.
-
schrankwand schrieb:
Aha, das würde ja heissen das MaSTaH, der hier so auf schlau gemacht hat, selber nicht weiß was Windows PE ist.
Entweder DU wolltest gerade witzig sein, oder du hast meinen Witz nicht verstanden (und dazu noch den Clown-Smiley übersehen
).
-
hmm..
soll ich jetzt Boxhandschuhe ausgeben ?
-
fyi: http://de.wikipedia.org/wiki/Ironie
(damits jetzt jeder versteht
-
irgendwie ist der Boomerang garnicht so schlecht
-
btw. ist reversing von kommerziellen applikationen afaik eher halblegal.
-
schrankwand schrieb:
Ich will einfach nur irgendwelchen funktionierenden C-Quellcode aus einer exe und ggf. aus dlls generieren. Das kann doch nicht so scher sein. Durch den so erhaltenen Quellcode noch durchblicken zu können ist was anderes.
OK. Nimm dir 1,5 Tonnen Gehacktes halb und halb. Was du jetzt versuchst zu machen, ist das Rind und das Schwein wieder herzustellen.
Das höchste der Gefühle ist hoch optimierter Assembler Code. Code einer Hochsürache wirst du nie wieder zu sehen bekommen, wenn der Sourcecode erstmal compiliert ist.
-
Luckie schrieb:
schrankwand schrieb:
Ich will einfach nur irgendwelchen funktionierenden C-Quellcode aus einer exe und ggf. aus dlls generieren. Das kann doch nicht so scher sein. Durch den so erhaltenen Quellcode noch durchblicken zu können ist was anderes.
OK. Nimm dir 1,5 Tonnen Gehacktes halb und halb. Was du jetzt versuchst zu machen, ist das Rind und das Schwein wieder herzustellen.
Das höchste der Gefühle ist hoch optimierter Assembler Code. Code einer Hochsürache wirst du nie wieder zu sehen bekommen, wenn der Sourcecode erstmal compiliert ist.
Das würde bedeuten, dass man aus einem Assembler niemals C code erstellen könnte...
nur ist es immer möglich dies auch in einer höheren Sprache abzubilden.
Wenn du dir Boomerang angesehn hättest würdest du das auch teilweise bejaen.
das es nicht der oginäre Quelltext wird ist sicher klar.
Aber die Möglichkeit besteht.
-
Betrachten wir uns mal folgenden Delphi Code:
for i := 0 to 9 do s := IntToStr(i);
und
for i := 9 downto 0 do s := IntToStr(i);
Für beide Schleifen erzeugt der Compiler identischen Code, nämlich
cmp ebx,$0a jnz -$10
Und warum? Weil er optimiert. Wie willst du nun den original Quellcode wieder rausbekommen? Wurde im Original nun die Schleife hoch oder runtergezählt? OK, hier spielt es keine Rolle. Aber es soll zeigen, dass es weitgehen unmöglich ist den original Quellcode wieder zu bekommen, bei komplexen Operationen, da heutige Compiler der maßen gut optimieren, das man den Quellcode kaum noch wieder erkennt, geschweige denn den Quellcode in der Hochsprache wieder bekommt.
Ich kenne Boomerang nicht, aber das was man da als Quellcode sieht, mag ja für einfache Programme brauchbar sein. Aber dafür brauche ich keinen Decompiler. Ich vage zu bezweifeln, dass es bei komplexeren Routinen funktioniert. Und die Frage ist auch, ob beim original Quellcode die Compiler Optimierung aktiviert wurde.
Ich darf da noch mal eine Stelle zitieren, die auf der Boomerang Seite verlinkt wird:
Further, even if a certain degree of success is achieved, the automatically generated program will lack meaningful variable and function names as these are not normally stored in an executable file (except when stored for debugging purposes).