Hide your key with alchemy/FlasCC/CrossBridge

我们终于很不情愿的发现,现在想要从我们在线运行的已经加密过的swf文件,已经可以很轻松地被FlashBug这类插件解析显示时,真的是时候改变我们的文件加密方案了,由这里找到了一篇文章描述了几种鸡贼的解决方案,我决定由alchemy入手,原理很简单,利用C编写一小段代码,然后返回你的key就可以了,逆解出来的文件们有好几百个,如果你再耍个手段什么的,找起来就更麻烦一些,我说过,只是想给各位技痒的逆解大师们增加一点难度,咱们也别用插件就给你解了就行。

由于我们的项目构建时采用了Flex3.6框架,又没有及时的做重构更新到新版本的SDK,导致现在很多新性能不能得以实现的同时,很多新框架和开发工具也不能使用,当我兴致勃勃地从Adobe Down了已经更名为FlasCC实际项目文件却叫CrossBridge的时候,驱起已经老残的C语言,艰难地编写出一个c文件:

 #include <stdlib.h>  
 #include <stdio.h>  
 #include <string.h>  
 #include "AS3/AS3.h"  
 void gk() __attribute__((used,  
              annotate("as3sig:public function ec(keystr:String):String"),  
              annotate("as3package:rivolo.ec")));  
 void gk()  
 {  
   char* head = "88dfhdjgsw902k";  
   char* result = NULL;  
   AS3_DeclareVar(asResult, String);  
   AS3_CopyCStringToVar(asResult, head, strlen(head));  
   AS3_ReturnAS3Var(asResult);  
 }  

然后命令行打包出swc,具体办法已经在许多博客中有描述,在此不赘述。
我遇到的问题是随后发生的,老版本的Flex不能使用这个swc.
会出现一个:abc bytecode decoding failed 的错误。
于是思路变成,利用老版本的alchemy来打包,果然被我给找到了,我怕再丢,先存一个到云吧。 百度云