源代码
这是一些关于如何保护自己的作品不被 ASV 破解的方法,仅供参考。
demons:
//Demon.S flash fuction lib
//protect flash swf head
void(a)<=b>"c"||0(!1 && !0);
chocobo:
1(hacker=1);
fictiony:
呵呵,画魔的方法其实和JJ的方法一样的哦!其实都不用那么麻烦啦,只要写“0()”就可以了。ASV对非法函数名的解码有问题,没有出错处理。所以只要是带有非法函数名的语句都会中断asv解码。
除了这种方法,其他还有几种反asv的方法:
1、使用Unicode码为0xa920的字符。
这个字符很奇怪,它会使得asv解码过程出现问题,但不是中断。asv读到这个字符(不论放在哪儿)后,会出现死循环解码的情况,并每解一句提示一个错误。这个方法的好处是不受代码的局限,随便什么地方都能放,而且可以插入到字符串中去,缺点是代码仍能被解出,只是变得乱七八糟了。
2、利用16进制编辑器修改swf文件。
利用16进制编辑器修改需要一定的耐心,因为并不是每次修改都成功的,而是需要多次修改和测试。一般,可以找到需要加密的代码段开头位置(可以用pino的dswf,^v^,免费给他做广告),然后将其前一字节从00改成10(当然改成其他也未必不行)。因为这个字节所在的位置是用来指定这段代码的某个属性的,所以asv就有可能读取出错。不过,这种改法未必次次奏效,所以需要改好后运行一下看看是否没问题,再用asv解一下是否不能解。如此反复直到成功。
3、利用swf反汇编器。
swf反汇编器现在有很多,最有名的就是flasm,它能将swf里的action代码反汇编成元指令代码,并可经一定修改后重编译成swf。不过它对图形的支持不好,所以一般只用在做成swf的action代码库。我们可以把需要用到的代码都写成一批函数,并放在一个单独的flash文件里生成swf,用的时候利用loadMovie来载入就可以了,这样虽然麻烦,但行之有效。用flasm处理过的swf文件一般不能被asv解码,而且执行效率也有所提高。
以上3种方法再加上开头提的那种一共4种方法,不过都是针对asv的缺陷的,并不能说治本。不过大可不必担心,除非新版的asv极为强大,或者对方是一个hacker级的高手,否则要解码还是有天大的麻烦的。
顺便提一句,这几种方法都是互不相干的,所以你可以在一个动画里统统用上——反正破了一种还有三种在,破了两种还有两种挺着……呵呵,看着办吧!