Die Decompiler FAQ



  • Decompiler

    Decompiler bezeichnet Programme, die die Arbeit des Compilers umdrehen. Also sollen Decompiler im Idealfall aus den erzeugten Binarys wieder den vorherigen Source Code erzeugen.

    Decompilierung ist aber schlecht möglich und den Idealfall erreicht man nie. Gerade durch die Optimierungsphasen der heutigen Compiler, bei denen der Assemblercode umsortiert wird und Anweisungen wegfallen, macht dieses Unterfangen schwer. Dann sind Bezeichner, wie Variablennamen, im Assemblercode in der Regel nicht mehr vorhanden, so dass man selbst wenn man es schafft den Code zu dekompilieren keine vernünftigen Bezeichner mehr zur Verfügung hat und wer weiss schon was dann hinter Namen wie funktion1 oder funktion100 stehen soll. Ein passender Vergleich zum decompilieren ist das zusammen setzen einer Kuh aus einem Beutel Hackfleisch!

    Bei Objekt Orientierten Sprachen ist das decompilieren besonders schwer, da auf Assemblerebene die OO-Strukturen nicht mehr vorhanden sind.

    Java- und dotNET Bytecode lässt sich im Vergleich zu "echten" Binarys noch sehr gut dekompilieren. Aber gerade bei kommerziellen Produkten werden hier oft Code-Verschleierer genommen um das Dekompilieren unmöglich zu machen.

    Links


Anmelden zum Antworten