Слабое место: раскрытие кода ActionScript
Хакер может загрузить ваши файлы SWF и затем открыть с помощью программного обеспечения, разработанного для чтения кода ActionScript. С помощью этого программного обеспечения ваш код вскрывается вместе с именами файлов, которые вы можете загружать из него. Это может быть огромной проблемой, если вы имеете коммерческие секреты или просто не хотите распространять повсюду ваш код. Кроме того, опытный хакер может использовать программу, которая позволяет ему или ей редактировать двоичные файлы, такие как SWF. Это означает, что хакер может удалить установленную вами защиту, вроде защиты с помощью свойства _url и сохранить файл снова.
Средство защиты
Нет ничего, что могло бы удержать серьезного преступника от чтения кода ActionScript в вашем файле. Но есть кое-что, что позволит вам улыбнуться в дьявольской гримасе: путаница. Запутать что-либо означает сделать его сложным или трудным для понимания. Запутыватель представляет собой приложение, которое берет ваш файл, читает каждый бит кода и заменяет имена тарабарщиной. Код ActionScript все также работает – он просто использует странные имена переменных и другие ссылки. Ниже приведен пример функции, которая была запутана.
1 function F_]}•?a?T? (???m_P,?_Q??,F,O1/4C_,
.m?__,F?_O,F?__){
2 var eval ("?X_");
3 var eval ("_O");
4 var eval ("_m");
5 var eval ("_§");
6 var eval ("P?");
7 var eval ("…_");
8 var eval ("P?");
9 var eval ("m?");
10 var eval ("b_]_P");
11 var eval ("?")=new Array ();
12 eval ("b_]_P")=0.0174532925199433;
13 eval ("P?")=Math.sin(eval ("?_Q??")*eval ("b_]_P"));
14 eval ("…_")=Math.cos(eval ("?_Q??")*eval ("b_]_P"));
15 eval ("?")[0 ] ==new Array ();
16 eval ("?")[1 ] ==new Array ();
17 eval ("?")[2 ] ==new Array ();
18 eval ("?")[3 ] ==new Array ();
19 var W =0;
20 while (W <4){
21 eval ("_O")=eval ("???m_P")[W ][0 ];
22 eval ("_§")=eval ("???m_P")[W ][2 ];
23 eval ("_m")=(-eval ("???m_P")[W ][2 ])*eval ("P?");
24 eval ("_§")=eval ("_§")*eval ("…_");
25 eval ("?X_")=F /(eval ("_§")+F);
26 eval ("?")[W ][0 ] ==eval ("O1/4C_")+(eval ("?X_")*