-
-
[讨论]swfencrypt的加密原理
-
发表于:
2008-12-25 09:35
7453
-
swfencrypt的出现,flash文件的AS得到了有效的保护,但ASV又成为其竞敌,两者多次通过升级,在加密与解密中较量,我们应该思考,swfencrypt的加密原理是什么,不可能用到对称或不对称等加密算法,unswfencrypt的作者对此有深入的研究,但不太详细,原文如下:
SWFEncrypt4.0是工作于Flash ActionScript 的 AS2.0 SDK环境,仅能对Flash没有使用AS3.0进行PCode的SWF发布文件。它的加密原理也比较简单,当然前提是你对SWF文件结构有一定的了解,其实SWFEncrypt对SWF到底做了什么,网络对官方产品说:SWF Encrypt是一款强大的Flash加密工具,使用DMM(动态内存修改)技术和Action script混淆技术来保护您的原创设计,可以抵御绝大多数主流的Flash反编译器,据某人说若使用某知名国产Flash反编译器来尝试处理经SWF Encrypt加密的文件时会使前者陷入死锁
了解的人定会知道,确切来说它根本没有加密AS,因为我能原原本本的从SWF文件里挑出来,它能做的是把AS增肥,蒙骗一下主流的Flash反编译器,它骗不了我的分析引擎,它的设计是被Flash的开放格式结构和运行速度差少所限制的,这是它没有加密的原因。
SWFEncrypt4.0还原的关键还是在于查找ConstPool简称字典池吧,RCE Forums的Malware Analysis and Unpacking Forum的SWF Encrypt explanation.有外囯人的分析,仅有一个人说到关键上,但他没有真正有效的查找方法,他仅对英文的ACII码判定,这肯定是不科学的,你想想,Flash是个能够跨平台,跨国家语言的东西(连变量名也可以是中文名),而且作者会做假的ConstPool,让你搜索判断不准。那么,我们必须使用有效的方法对ConstPool是否存在,若存在如何能正确找到它做准确的判断和查找,这里我们可以做个虚拟机,模拟执行作者设计的混淆PCode,若有ConstPool快结束时就会停在ConstPool处,再过好步就会跳转到(呵呵)真身处。为什么会这样,因为作者只是将AS分成两部分:1.原始PCode;2.在ConstPool中嵌入混淆PCode。再将其衔接(可能是DMM吧)!
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课