Dlhodobo bol presadzovaný názor, že výstupný súbor z flash editoru (*.swf) je needitovateľný. Svojim spôsobom je to pravda, lebo flash editor tento súbor nevie spätne načítať, tak aby sa dal upravovať. Postupom času sa ale vyvinuli aplikácie na prevedenie swf súboru do zdrojového, flash editorom upravovateľného formátu *.fla, takzvané Dekompilery. Dekompiler ako taký nie je zlá vec. Stalo sa a nielen mne, že som nechtiac zmazal svoj zdrojový súbor *.fla alebo *.as a keďže sa jednalo rozsiahly projekt, rádovo stovky riadkov kódu a originálnych algoritmov, bol som fakt dosť nešťastný až zúfalý, keď som si predstavil že som dáta stratil a projekt buď padne alebo ho bude treba urobiť od začiatku (niekedy projekt trvá aj viac ako 3 mesiace). Vtedy je namieste použiť Dekompiler, ktorý ušetrí veľmi veľa roboty, nervov a peňazí.
Dekompilerov je veľké množstvo, ale azda najlepším dekompilerom aký kedy uzrel svetlo sveta je Dekompiler od spoločnosti Sothink. Tento program vie rozobrať aj najzložitejšiu aplikáciu (s výnimkou komponentov) do základného formátu fla a potom ju jednoducho upraviť vo flash editore a znova vyexportovať nové swf. Veľkú výhodu dekompileru pocítia aj začínajúci flash programátori, ktorý si môžu pomocou dekompileru naštudovať rôzne použité postupy skriptovania. Postupom času sa ale Dekompilery stali aj nepriateľmi flash programátorov, a to vtedy keď s ich pomocou začali ľudia, ktorý si privlastňovali cudziu prácu alebo časti zložitých kódov, kradnúť dekompilovaním cudzie práce. Preto sa zo začiatku vyvíjali mnohé techniky ako znepríjemniť alebo odradiť „zlodejov“ od použitia kódu, ktorý získajú dekompilovaním. Robilo sa to rôznymi „fintami“ ako napríklad používanie XORovania kódu, vytváranie falošných funkcii a premenných, ktoré mali zmiasť prípadného škodcu, a tak isto do dnes mnou používaná finta (ktorú som si vymyslel ale neskôr som zistil, že som nebol prvý
Na ukážku Vám ukážem, ako dekompiler zobrazí časť originálneho kódu a šifrovaného programom od spoločnosti Amayeta.
Originálny kód ActionScript2:
Kód: Vybrať všetko
for (i=0; i<=f; i++) {
if (!hit1 && Key.getCode() == 39) {
_root["s"+i]._x += a;
hit2 = false;
} else if (!hit2 && Key.getCode() == 37) {
_root["s"+i]._x -= a;
hit1 = false;
}
}Kód: Vybrať všetko
function (){
\x03 = 1839 % 511 * true;
return (eval("\x03"));
}
var \x01 = -237 + \x04\x05();
for (\x01 = eval("\x01") + 553; eval("\x01") == 622; \x01 = eval("\x01") - 176){
\x01 = eval("\x01") - 395;
if (false){
continue;
}
}
if (eval("\x01") == 411){
\x01 = eval("\x01") - 206;
if (!null){
}else{
\x01 = eval("\x01") - 4;
}
}
.
.
.Na záver chcem dodať, že aj keď je celý tento článok o tom ako chrániť ActionScript neznamená to, aby ste si svoje malé aplikácie (aj keď pre vás majú veľkú hodnotu lebo sú to vaše prvé práce) zbytočne nešifrovali, šifrovaním sa totiž veľkosť swf o niečo zvýši lebo šifrovaného kódu je oveľa viac ako originálneho. Zažil som už aj prípad, keď originálny swf mal 500KB a po šifrovaní mal 1200KB, takže si treba dobre zvážiť či také prípadné navŕšenie veľkosti súboru stojí za to. Ak by niekoho zaujímalo ako ochrániť použitú grafiku v animáciách/aplikáciách, tak vás sklamem. Bohužiaľ zatiaľ neexistuje technika alebo program, ktorý by dokázal zabezpečiť grafický obsah swf súboru pred jeho dekompilovaním alebo kradnutím celkovo.
(Akákoľvek reprodukcia ľubovoľnej časti článku, nie je bez písomného súhlasu autora dovolená.)