January 18, 2007

AS3反编译器快要露脸了

自从Adobe贡献源码给Tamarin后,AS3 decompiler一直在传言中。
居然有位兄台写出了如何做AS3 decompiler,有趣有趣
虽然只是初步,但毕竟是个开始,大家瞧好吧

教程地址:
http://iteratif.free.fr/blog/index.php?2006/11/15/61-un-premier-decompileur-as3
http://www.5etdemi.com/blog/archives/2007/01/as3-decompiler/
例子:破解前的源码


public class RawAmfService extends EventDispatcher
{
public var gatewayUrl:String = "";
var loader:URLLoader;

public function RawAmfService()
{
loader = new URLLoader();
loader.addEventListener('complete', readData);
}
...
}

反编译后的代码:

class RawAmfService extends flash.events::EventDispatcher
{
var gatewayUrl:String = "" /* slot_id 0 */
var loader:flash.net::URLLoader /* slot_id 0 */

function RawAmfService():* /* disp_id -1*/
{
// local_count=1 max_scope=1 max_stack=3 code_len=40
0 getlocal0
1 pushscope
2 findproperty gatewayUrl
5 pushstring ""
7 initproperty gatewayUrl
10 getlocal0
11 constructsuper (0)
13 findproperty loader
16 findpropstrict flash.net::URLLoader
19 constructprop flash.net::URLLoader (0)
23 initproperty loader
26 getlex loader
29 pushstring "complete"
32 getlex readData
35 callpropvoid addEventListener (2)
39 returnvoid
}
...
}

TrackBack

TrackBack URL for this entry:
http://www.kingda.org/cgi-bin/mt/mt-tb.cgi/138

Comments (6)

sunlight:

期待中...

那样就太好了,可以用AS3做更好的Mp3播放器了!
这是我用AS2+C#做的桌面型FlashMp3播放器下
载:http://www.an86.net/blog/article.asp?id=97

weni:

我觉得这并不是一件好事来的。对于我们as程序员来说。

呵呵,看看怎么用了。
如果用来分析和学习一些代码是没有太大关系的。
如果真正想要保护自己的作品,我们还有混淆器可以用吗。对不? ^_^

黑羽,现在用什么混淆器?

黑羽,现在可用混淆器有什么啊?

留下高见,发表评论

个人信息不会外泄,请放心填写。

姓名和Email必填。

发表评论后,请耐心等待,不要频繁刷新。提交完成后,刷新一下本页即可看到您的评论。^_^

请输入验证字符"h" :

最近发表

归档

全部
Creative Commons License
此 Blog 中的日记
遵循以下授权:
Creative Commons
(创作共用) 授权
.
Google PageRank
本站被Adobe官方MXNA新闻聚合器收录
本站被蓝色理想BXNA收录
\n"; for ($i = 0; $i < count($arr_xml['URL']); $i++) { if( isset($arr_xml['PostID'][$i]) && $arr_xml['PostID'][$i] > 0 ) continue; echo "
  • ".$arr_xml['BeforeText'][$i]." ".$arr_xml['Text'][$i]." ".$arr_xml['AfterText'][$i]."
  • \n"; } echo ""; } } function tla_updateLocalXML($url, $file, $time_out) { if($handle = fopen($file, "a")){ fwrite($handle, "\n"); fclose($handle); } if($xml = file_get_contents_tla($url, $time_out)) { $xml = substr($xml, strpos($xml,'(.*?)', '"'); $n = 0; while (isset($out[$n])) { $retarr[$out[$n][1]][] = str_replace($search_ar, $replace_ar,html_entity_decode(strip_tags($out[$n][0]))); $n++; } return $retarr; } tla_ads(); ?>