As3.0 decompiler反编译器
- 博客分类:
- 技术杂绘
As3.0 decompiler反编译器
2010年11月13日
转自:http://www.5etdemi.com/blog/archives/2007/01/as3-d ecompiler/ 感谢ws-forum 版主molay提交的As3.0文章.
这原本是在一个法国 ASer 的博客上发表的两篇文章,现在它们通过无线电传到我这儿了,于是乎,我就把它们翻译一下并发表在这里。这个 Tamarin 工具主要就是一个动作脚本字节编码(Actionscript Byte Code,ABC)的反编译器,它可以从 Swf 以及 ABC 文件中提取出便于我们阅读的伪码。之后,这些伪码就能通过一系列的程序转换成 AS3 源码。这可是相当地可怕呀,不是么?
让我们来看看文章都说了些什么吧。首先作者向我们阐述了如何构建属于你自己的编译器。然后你就可以直接下载前面构建好的编译器了。最后是我自己个人对本文的注解。
通过 Tamarin 工程创建可执行文件
您可以在 CVS 上下载 Tamarin。参考了 Zwetan 的描述,CVS 信息如下所示: 按照 readme.txt 文件的指导进行安装就可以了。工程可以通过 Microsoft C 编译器进行编译;当然,如果您还没有 VC.NET Express 2005 的话,您可以去免费下载一个。
Tamarin 工程包含相当多的有趣的玩意儿。您可以查看"util"文件夹,里面有一个abc、swf和swc文件的反编译器。现在你通过它只能获得 AS3 的伪码,但是别急,好戏才刚刚开始。
编译类似的"abcdump.as"文件时,您需要将Tamarin内部在编译过程中使用到的核心内建组件也一同编译成ABC。 您可以使用 Flex 2 SDK 通过下面所示的方法进行编译: 这样你就获得了一个"builtin.abc"文件。此外,ByteArray class 同样也是必须的,您可以在命令行解释器文件夹中找到它: 至此,我们就可以准备开始编译abcdump了: 现在我们得到了abcdump.abc文件,您可以在AVM虚拟机中运行它或者使用反编译器来反编译任何偶然发现的.abc文件。拿playerglobal.abc文件举例: 通过 ASC 编译器我们完全可以使用 -exe 编译参数来创建 exe 文件,就像这样: 这样我们就完成了一个名称为"abcdump.exe"的可重用的、命令行模式的反编译器。酷吧?同样Tamarin也包含了很多其他有趣的玩意儿,例如文件IO操作以及其他不可思议的材料。
第一个 ActionScript 反编译器
我们可以通过Tamarin File IO模块来转储反编译器的输出文件。这个abcDump反编译器的雏形至此已经完成。您可以按照下面的方法来使用它: 点击此处到这个小玩意儿的下载页面(单击文章末尾处的"AbcDump.zip"链接)。
我的注释
我拿"Amfphp Service Browser"来开刀,得到了一个7MB的servicebrowser.il文件。该文件是一个含义模糊的比特文件,尽管如此,它还是能被我们读懂 ^_^。举个例子吧,RawAmfService class的源文件内容和下面的差不多: 反编译后的 class 文件则是: 有趣的是,我发现在构造器内部参数"gatewayUrl"的值似乎被设置为了它的默认值。下一步,就是开始翻译这个.il文件,把它变成一个能被我们更 方便地识别的语言所编写的东西了呵呵。在iteratif.net上,这个家伙说自己正从事着这方面的工作,当然,我并不是很确定当前的状况。如果您很感 兴趣并且想和他一起合作的话,您可以在iteratif DOT net 的 "contact AT"版块与他取得联系。 Tamarin
Adobe将ActionScript Virtual Machine 2(AVM2)的核心源代码捐献给Mozilla组织,变成了一个叫做Tamarin的开源项目。Tamarin作为一个标准的ES4引擎,虽然现今只有 AVM2和SpiderMonkey基于它,但这也足够形成一个强大的战略同盟--Adobe或Mozilla社区对Tamarin的改进都会让双方同时 受惠。
AMF
AMF(Action Message Format)是一种 binary format的资料型态,透过 AMF over HTTP的方式将flash端资料编码后传回server,server端的remoting adaptor接收到资料后则会译码回正确的native对象,交给正确的程序处理。
AMF除了用于Flash remoting外,也广泛的用于 Local Connection 与 Flash communication server,它最大的特色在于可直接将flash native object,例如Object, Array, Date, XML,传回server端,并且在server端自动进行转译成适当的对象,例如flash 的Array传回PHP时就会自动转换为 Associative Array;这个特色对开发者最大的好处在于不需要再人工处理serialization 与 deserialization的繁复工作,不但精确度更高,同时开发也更省时间。
由于AMF是binary format并且编码时经过高度压缩,因此非常适合用来传递大量的资料,根据flashorb网站的测试(主要针对web service与flash remoting),当资料量越大时,flash remoting的传输效能就越高,远远超过web service的表现,因此同样的道理也可得知xml, loadVars, loadVariables 等使用plaine text format的传输方式自然也无可比拟
发表评论
-
Android入门--写一个最简单的计算器
2012-01-20 02:51 792Android入门--写一个最简单的计算器 2011年04月 ... -
Android编译,打包、签名详细教程
2012-01-20 02:51 602Android编译,打包、签名详细教程 2011年05月25 ... -
Android中JNI编程的那些事儿
2012-01-20 02:51 947Android中JNI编程的那些事 ... -
Android命令行手动编译打包详解
2012-01-20 02:51 825Android命令行手动编译打 ... -
神马都是浮云
2012-01-19 10:43 459神马都是浮云 2011年06月02日 心情突然莫名的伤感 ... -
汪汪,记住神马都是浮云、
2012-01-19 10:43 533汪汪,记住神马都是浮云、 2012年01月08日 神 ... -
神马都是浮云
2012-01-19 10:43 571神马都是浮云 2011年09月14日 2011 ... -
神马都是浮云
2012-01-19 10:43 543神马都是浮云 2011年12月30日 坎坷的2011即将 ... -
想开了,神马都是浮云
2012-01-19 10:43 504想开了,神马都是浮云 2012年01月09日 最近几日的 ... -
常见的硬盘内存问题的解决方案,ADSL错误代码
2012-01-17 03:14 476常见的硬盘内存问题的解决方案,ADSL错误代码 2011年0 ... -
折腾我N久的flash 8软件终于可以打开了
2012-01-17 03:14 759折腾我N久的flash 8软件 ... -
Erase flash,Erase NVRAM命令与
2012-01-17 03:14 2623Erase flash,Erase NVRAM命令与 201 ... -
电脑知识
2012-01-17 03:14 540电脑知识 2010年06月23日 ... -
掌握这些电脑知识,你可以玩的很无耻
2012-01-17 03:14 596掌握这些电脑知识,你可以玩的很无耻 2011年09月05日 ... -
东北话4-8级考试~东北人试试!
2012-01-16 01:48 670东北话4-8级考试~东北人试试! 2009年06月01日 ... -
看看你是个合格的东北人不
2012-01-16 01:48 936看看你是个合格的东北人不 2009年10月16日 安 ... -
够格东北人测试
2012-01-16 01:48 598够格东北人测试 2009年10月03日 [转] 看看你是 ... -
浅谈医院执行力不佳的原因
2012-01-16 01:48 597浅谈医院执行力不佳的 ... -
《阳光家族核心会议精神概要》
2012-01-16 01:48 669《阳光家族核心会议精神概要》 2011年12月06日 ... -
两个 AIR SQLite 例子
2012-01-11 01:41 627两个 AIR SQLite 例子 2011年09月01日 ...
相关推荐
基于java的开发源码-Decompiler反编译器.zip 基于java的开发源码-Decompiler反编译器.zip 基于java的开发源码-Decompiler反编译器.zip 基于java的开发源码-Decompiler反编译器.zip 基于java的开发源码-Decompiler反...
基于java的开发源码-Java Decompiler反编译器.zip 基于java的开发源码-Java Decompiler反编译器.zip 基于java的开发源码-Java Decompiler反编译器.zip 基于java的开发源码-Java Decompiler反编译器.zip 基于java的...
Java Decompiler反编译器.zip
Java Decompiler反编译器 v1.6.6.zip
基于Java的Decompiler反编译器.zip
基于Java的源码-Decompiler反编译器.zip
基于Java的源码-Java Decompiler反编译器.zip
基于Java的实例源码-Decompiler反编译器.zip
基于Java的实例开发源码-Decompiler反编译器.zip
为您提供JavaDecompiler 反编译器下载,Java Decompiler ( JD-GUI )这款反编译器叫
JAVA反编译器DJ Java Decompiler
很好用的JAVA反编译器,轻松反编译.class文件。将class文件默认用这个打开,非常方便。
Java Decompiler ( JD-GUI )这款反编译器叫 "Java Decompiler", 是一个独立的图形实用程序,它显示“ .class”文件的Java源代码。您可以使用JD-GUI浏览重建的源代码,以立即访问方法和字段。其有下面几个功能:1. ...
JAVA精品新譯<2> DJ Java Decompiler 2.9.9.57老朽痴拙汉化版(JAVA反编译器) 使用DJ Java Decompiler你可以反编译class文件并且可以保存为文本文件或其它格式,它很容易使用。DJ Java Decompiler是Windows 2000,...
FLASH转盘抽奖AS3.0程序-超完整版-极力推荐 ~网上提供的都是浮云,你下载后对比就知道,什么才是好东西 ~免费滴,又不加密,能看源码噢 ~思路清晰,添加新的应用都方便 ~极力推荐有需要的人下载,其他人的你可以不用...
反编译程序,反编译器 , 反编译。 反编译程序,反编译器 , 反编译程序,反编译器
eclipse-decompiler3.0 eclipse-decompiler3.0 eclipse-decompiler3.0 eclipse-decompiler3.0 eclipse-decompiler3.0 eclipse-decompiler3.0
JPEXS Free Flash Decompiler(FFDec)是专业的 Flash 反编译工具由大飞哥软件收集整理发布。程序可以查看 的ActionScript1/2的源代码或 3 ...JPEXS Free Flash Decompiler 反编译器和编辑器提取资源,将SWF转换为FLA。