要想对Flash做到完全加密那是不可能的事,谁叫Adobe发布了swf文件的标准…… 而SWF Encrypt加密后老是会带一个讨厌的Logo,估计作者的意思是想去掉,就得给钱…… 一个是AS2,一个是AS3的 ^-^
这里不讨论防止网页下载swf文件的各种办法,只将下常用加密和解密软件的使用。
常用的Flash解密软件是硕思闪客精灵和ASV,ASV比闪客精灵强大~
常用的加密软件为SWF Encrypt和Flashincrypt,两款软件都是代码混淆。
Flashincrypt比较容易获得,但是效果不好,可以对付闪客精灵但是不能对付ASV。
SWF Encrypt混淆后的代码闪客精灵和ASV破解后,AS代码都无法使用。
代码会变成类似下边的片段: for(;;){
for(;;){
function () {
Set("x03", (962 % 511) * 5);
return(x03);
}
var x01 = (-1837 + x04x05());
// swfAction0x03 // Unknown action
while (while (while (while (while (x01 == 418) {
Set("x01", x01 + 500)}
, x01 == 270) {
Set("x01", x01 + 144)}
.....................
下边是网友flash023给出的试用于SWF Encrypt 5的去Logo方法,写入Fla文件即可~//-------------------------deleteSwfEncryptLogo-AS2---------------------------
function unSWFEncryptLogo() {
for (var p in this) {
var _mc = this[p];
if (typeof _mc == "object" && _mc._width == 0 && _mc._height == 0 && Math.abs(_mc._x)<1 && Math.abs(_mc._y)<1) {
_mc._name.indexOf("instance") != -1 && (_mc._visible=false);
}
if (typeof _mc == "movieclip" && Math.abs(160-_mc._width)<3 && Math.abs(70-_mc._height)<3 && Math.abs(_mc._x-100)<1 && Math.abs(_mc._y-37.5)<1) {
_mc._name.indexOf("instance") != -1 && _mc.unloadMovie();
}
}
}
unSWFEncryptLogo();
//-------------------------deleteSwfEncryptLogo-AS3-------------------------
function unSWFEncryptLogo() {
for (var p:uint =0; p<numchildren ; p++) {
var _mc = getChildAt(p);
if (_mc as SimpleButton && _mc.width == 0 && _mc.height == 0&&Math.abs (_mc.x)<1&&Math.abs (_mc.y)<1) {
_mc.name.indexOf("instance") != -1 && (_mc.visible=false);
} else if (_mc as MovieClip && Math.abs(160-_mc.width)<3 && Math.abs(70-_mc.height)<3&&Math.abs (_mc.x-100)<1&&Math.abs (_mc.y-37.5)<1) {
_mc.name.indexOf("instance") != -1 &&(_mc.visible=false);
}
}
}
unSWFEncryptLogo();