„Decompiling a SWF is often seen as an evil tactic that should be punishable by death, but regardless of your moral opinion, every SWF you create can be decompiled into often beautifully readable source code.“ Doug McCune’s Ankündigung zum Vortrag „Steal this Code“ / Flash on the Beach 2008 (Seine lesenswerten Slides dazu findet man übrigens hier).

Das Dekompilieren einer SWF ist denkbar einfach. Denn egal welche Motivation hinter dem Dekompilieren einer SWF steht, Unterstützung findet man in vielen freien (z.B. Nemo 440) oder kommerziellen Tools (z.B. ActionScript Viewer oder SWF Decompiler von Sothink).

Flash Decompiler Trillix

Diese Tage erreichte uns eine Email von Julia Rixon (Marketing Specialist bei Eltima) mit der verlockenden Bitte, den neuen Flash Decompiler Trillix zu testen. Denn laut den Ankündigungen unterstützt die neue Version auch das Dekompilieren und Konvertieren von SWF Dateien in Flex. Und nicht zu vergessen, auch Flash 10 wird voll unterstützt.

Der Test

Wie testet man nun einen Dekompiler? Dazu habe ich einfach zwei eigene SWFs eines Flash- sowie eines Flex- / AIR Projekts als Grundlage genommen, um den dekompilierten Code mit dem Original gut vergleichen zu können.

Und das Ergebnis ist erschreckend gut! Alle packages, Klassen, Methoden usw. findet man in seiner gewohnten Struktur und der Code ist wieder sehr gut lesbar. Auch der Sourcecode von Spark-Komponenten der zukünftigen Flex 4 Version wurde ohne Probleme dekompiliert.

Flash Decompiler

Wer bei der Funktion „Convert into Flex“ ein komplettes Flex-Projekt erwartet, wird enttäuscht. Dabei werden lediglich alle Klassen sauber strukturiert in einen „src“ Ordner abgelegt. Und ganz klar, MXML Dateien werden nicht wieder als MXML-Dateien wiederhergestellt, sondern als reine ActionScript-Klassen. Der Trost dabei: Wenigsten den Komponenten Lifecycle vom Flex-Framework sollte jeder verstehen, der dann diesen Code verstehen will 😉

Fragen an Euch

Wie schützt Ihr Euren Source-Code vor Dekompilern? Verwendet Ihr einen Obfuscator? Schreibt einfach einen Kommentar, Eure Erfahrungen / Meinungen interessieren uns sehr!

Gewinnspiel

Eltima hat uns eine Lizenz für die Vollversion des Flash Decompiler Trillix (Win oder Mac) zu Verfügung gestellt, die wir unter allen flexughh-Mitgliedern verlosen möchten.

Einzige Voraussetzung: Du bist Mitglied in der flexughh-Gruppe bei XING. Jeder, der mitmachten möchte, sendet bis zum 14.07. einfach eine Email an raffle@flexughh.de mit seinem Vor- und Nachnamen, Email, sowie der gewünschten Plattform für die Lizenz (Win oder Mac). Der Gewinner oder die Gewinnerin werden danach von uns benachrichtigt und in unserem flexughh-Forum bei XING veröffentlicht.

Und für alle „Nicht-Gewinner“: Wir erhalten außerdem von Eltima einen Discount-Code für alle flexughh-Mitglieder, den wir ebenfalls in unserem flexughh-Forum „Rabatte + Discounts für flexughh-Mitglieder“ veröffentlichen werden.

[Nachtrag 16.07.09] And the winner is: Leif Rumbke. Herzlichen Glückwunsch und viel Spass mit dem Flash Decompiler Trillux! [/Nachtrag]

Viel Spass 😉

-Jens