AddThis Social Bookmark Button
 Amayeta SWF Encrypt 4.0 review (part 2)

Round 1: SWF Encrypt 4.0 vs Sothink SWF decompiler

Here are the results of what you can see in the Sothink SWF decompiler window after trying to view the actionscript of the encrypted SWF. I guess that if I was hoping to get some sensitive information from this SWF I would feel very disappointed. As you can see it is impossible to understand the code.

// Action script...

// [Action in Frame 1]
function ()
{
return (2745);
} // End of the function
var \x01 = -1779 + \x01\x02();
for (\x01 = eval("\x01") - 29; eval("\x01") == 663; \x01 = eval("\x01") - 519)
{
} // end of for
if (eval("\x01") == 223)
{
\x01 = eval("\x01") - 157;


} // end if
if (eval("\x01") == 995)
{
\x01 = eval("\x01") - 772;
if (false)
{
}
else
{
\x01 = eval("\x01") - 157;
} // end else if

} // end if
if (eval("\x01") == 66)
{
\x01 = eval("\x01") + 130;

} // end if
\x01 = eval("\x01") + 87;
if (eval("\x01") == 637)
{
\x01 = eval("\x01") - 72;

} // end if
if (eval("\x01") == 359)
{
\x01 = eval("\x01") - 163;

} // end if
\x01 = eval("\x01") + 851;
if (eval("\x01") == 431)
{
\x01 = eval("\x01") - 266;


} // end if
if (eval("\x01") == 937)
{
\x01 = eval("\x01") - 506;
if (false)
{
}
else
{
\x01 = eval("\x01") - 266;
} // end else if

} // end if
\x01 = eval("\x01") - 103;
var null = "\x0f";
if (eval("\x01") == 250)
{
\x01 = eval("\x01") + 387;
if (!null)
{
}
else
{
\x01 = eval("\x01") - 72;
} // end else if

} // end if
if (eval("\x01") == 165)
{
\x01 = eval("\x01") - 21;

} // end if
if (eval("\x01") == 438)
{
\x01 = eval("\x01") + 500;

} // end if
\x01 = eval("\x01") + 258;
if (eval("\x01") == 565)
{
\x01 = eval("\x01") + 268;

}
else
{
if (eval("\x01") == 938)
{
\x01 = eval("\x01") - 688;

} // end if
if (eval("\x01") == 833)
{
\x01 = eval("\x01") - 833;

} // end if

} // end else if


Round 2: SWF Encrypt 4.0 vs Flash decompiler from Eltima

Not much here either that is going to help us to hack into the file.

// Frame 1 actions...

// Clip events: Layer 1, Symbol 2

onClipEvent(load)
{
do
{
function ()
{
return 2212;
}

var  = -1364 + ();
for (;;)
{
if ( == 848)
{
 =  - 517;
continue;
}

if ( == 165)
{
 =  + 223;
continue;
__local0 = eval(true);
}
else
{
__local0 = true;
}

if ( == 854)
{
 =  - 578;
continue;
}

if ( == 369)
{
 =  + 606;
var undefined = __local0;
continue;
}

if ( == 388)
{
 =  + 152;
continue;
}

if ( == 276)
{
 =  + 93;
continue;
}

if ( == 975)
{
 =  - 810;
continue;
}

if ( == 540)
{
 =  - 496;
if ("")
{
 =  + 0;
}

continue;
}

if ( == 502)
{
 =  - 226;
continue;
}

if ( == 44)
{
 =  + 331;
continue;
continue;
}

if ( != 151)
{
break;
}

 =  + 703;
continue;
}

}
while ( != 375);

 =  - 375;
}


do
{
function ()
{
return 2198;
}

var  = -1454 + ();
for (;;)
{
if ( == 744)
{
 =  - 148;
continue;
}

if ( == 315)
{
 =  + 109;
continue;
}

if ( == 436)
{
 =  + 8;
continue;
}

if ( == 902)
{
 =  - 340;
continue;
}

if ( == 562)
{
 =  - 150;
continue;
}

if ( == 596)
{
 =  + 329;
if (1)
{
 =  - 344;
}

continue;
}

if ( == 925)
{
 =  - 344;
continue;
continue;
}

if ( == 515)
{
 =  + 132;
continue;
}

if ( == 828)
{
 =  - 736;
continue;
}

if ( == 444)
{
 =  + 467;
continue;
continue;
}

if ( == 318)
{
 =  - 3;
continue;
}

if ( == 282)
{
 =  + 154;
if ("")
{
 =  + 8;
}

continue;
}

if ( == 581)
{
 =  + 66;
continue;
}

if ( == 641)
{
 =  - 549;
continue;
}

if ( == 870)
{
 =  - 308;
continue;
}

if ( == 417)
{
 =  - 102;
continue;
}

if ( == 647)
{
 =  + 239;
continue;
}

if ( == 412)
{
 =  + 575;
var true = true;
continue;
}

if ( == 92)
{
 =  - 33;
continue;
}

if ( == 987)
{
 =  - 376;
continue;
}

if ( == 621)
{
 =  - 204;
continue;
continue;
}

if ( == 886)
{
 =  - 265;
if ("")
{
 =  - 204;
}

continue;
}

if ( != 424)
{
break;
}

 =  - 278;
if (true)
{
 =  + 495;
}

}

}
while ( != 911);

 =  - 911;


Round 3: SWF Encrypt 4.0 vs Action Script Viewer 5 from the Manitu Group

Well it does not get any better here and the code is still totally unreadable.

function () {
return (2745);
}
var \x01 = (-1779 + \x01\x02());
// swfAction0x03 // Unknown action
while (while (while (while (while (while (while (while (while (while (while (while (while (while (while (while (\x01 == 966) {
Set("\x01", \x01 - 29)}
, \x01 == 663) {
Set("\x01", \x01 - 519)}
, \x01 == 223) {
Set("\x01", \x01 - 157)// unexpected jump
}
, \x01 == 995) {
Set("\x01", \x01 - 772)if ( /* Error1010 */) {
} else {
Set("\x01", \x01 - 157) }
}
, \x01 == 66) {
Set("\x01", \x01 + 130)}
, \x01 == 351) {
Set("\x01", \x01 + 87)}
, \x01 == 637) {
Set("\x01", \x01 - 72)}
, \x01 == 359) {
Set("\x01", \x01 - 163)}
, \x01 == 144) {
Set("\x01", \x01 + 851)}
, \x01 == 431) {
Set("\x01", \x01 - 266)// unexpected jump
}
, \x01 == 937) {
Set("\x01", \x01 - 506)if ( /* Error1010 */) {
} else {
Set("\x01", \x01 - 266) }
}
, \x01 == 454) {
Set("\x01", \x01 - 103)var /* Error1011 */ = ()}
, \x01 == 250) {
Set("\x01", \x01 + 387)if ( /* Error1010 */) {
} else {
Set("\x01", \x01 - 72) }
}
, \x01 == 165) {
Set("\x01", \x01 - 21)}
, \x01 == 438) {
Set("\x01", \x01 + 500)( /* Error1011 */);// not popped
}
, \x01 == 196) {
Set("\x01", \x01 + 258);
}
if (\x01 == 565) {
Set("\x01", \x01 + 268);
// unexpected jump
} else {
if (\x01 == 938) {
Set("\x01", \x01 - 688);
( /* Error1010 */);// not popped
// unexpected jump
}
if (\x01 == 833) {
Set("\x01", \x01 - 833);
// unexpected jump
}
// unexpected jump
}


Verdict

Amayeta claims that their new encryption technology called Dense Encryption Points used to protect your ActionScript is up to 1000 times stronger than previous builds.


Amayeta also uses a unique encryption "Fingerprint" This means that the same SWF will have a Unique Encryption Fingerprint each time it's encrypted.

I have been using the version 3 of SWF Encrypt for a while before version 4 and I have always been very satisfied of the level of protection it offers.

It would be foolish to believe that SWF Encrypt 4.0 will always be the ultimate solution to SWF protection because it is a well known fact than locks are there to be broken, but at this precise point in time it is, to my opinion, the best software of its category.

You will find more information on the Amayeta website



AddThis Social Bookmark Button
If you think this page is providing useful information, don't hesitate to leave a comment.
flashvalley
 
Copyright ©2006-2008 flashvalley.com - All rights reserved