2008-09-04 8 views

Antwort

9

Im Allgemeinen sind Sprachen wie Java, C# und VB.NET relativ leicht zu dekompilieren, da sie in eine Zwischensprache kompiliert werden und nicht in eine reine Maschinensprache. In ihrer IL-Form behalten sie mehr Metadaten als C-Code, wenn sie in Maschinensprache kompiliert werden.

Technisch erhalten Sie nicht den ursprünglichen Quellcode, sondern eine Variation des Quellcodes, der Ihnen beim Kompilieren den kompilierten Code zurückgibt. Es ist nicht identisch mit dem Quellcode, da Dinge wie Kommentare, Anmerkungen und Compiler-Direktiven normalerweise nicht in den kompilierten Code übernommen werden.

1

.NET ist sehr einfach zu dekompilieren. Das beste Tool dafür wäre die kürzlich von RedGate erworbene .NET reflector.

0

Die meisten Sprachen können dekompiliert werden, aber einige sind leichter zu dekompilieren als andere. .Net und Java enthalten mehr Informationen über das Originalprogramm in den ausführbaren Dateien (Methodennamen, Variablennamen usw.), damit Sie mehr von Ihren ursprünglichen Informationen erhalten.

C++ zum Beispiel wird Variablen und Funktionen usw. in Speicheradressen übersetzen (ja, ich weiß, das ist eine grobe Vereinfachung), so dass der Decompiler nicht weiß, wie das Zeug heißt. Aber Sie können immer noch etwas von der Struktur des Programms bekommen.

0

VB6 wenn zu pcode kompiliert auch möglich ist, fast volle Quelle zu dekompilieren P32Dasm verwenden, Flash (oder Actionscript) ist auch möglich, volle Quelle zu dekompilieren etwas mit wie Flare

4

Verwaltete Sprachen einfach weil ausführbare dekompiliert muss viele Metadaten enthalten, um reflection zu unterstützen.
Sprachen wie C++ können in nativen Code kompiliert werden. Die Programmstruktur kann während der Kompilierungs-/Übersetzungsprozesse vollständig geändert werden.
Compiler kann Teile Ihres Codes leicht ersetzen \ merge \ löschen. Zwischen dem ursprünglichen und dem kompilierten (nativen) Code besteht keine 1: 1-Beziehung.

Verwandte Themen