SWC让AS3代码更不安全

    相信写AS3代码的同学都用过Action Script Viewer、SWF Decompiler这些工具吧?它们确实很强大,但普遍有一个缺点:对参数和局部变量反编译得不好,它们会用_arg1、_local1、param1和_loc_1来替换真正的参数和局部变量。虽然这不影响反编译,但对于只是借鉴部分代码的同学,相信很难理解这些无俚头的东东吧?    最近我用ASV浏览代码,幸运地发现它居然能准确地反编译参数和局部变量。当然这是有前提的,那就是必须是反编译调试版的SWF,对于发行版的SWF是没有办法的。大家知道,用Flash Builde等IDE默认就是生成调试版的SWF,添加SWC再生成就不是什么问题。另外,也可以解压SWC文件,直接反编译library.swf。所以说,SWC一不小心就让AS3代码暴露得一丝不挂。下图是使用ASV浏览发行版的SWF看到的AS3代码片段:
复制代码
代码如下:
public function setAlpha(_arg1:Number,_arg2:String="Normal"):void{ var _local3:int=addExtGState({ ca:_arg1, SA:true, CA:_arg1, BM:("/"+_arg2) }); setExtGState(_local3);}
很无俚头吧,如果代码再复杂一些,就更难懂了。 下图是使用ASV浏览调试版的SWF看到的AS3代码片段:
复制代码
代码如下:
public function setAlpha(alpha:Number,blendMode:String="Normal"):void{ var graphicState:int=addExtGState({ ca:alpha, SA:true, CA:alpha, BM:("/"+blendMode) }); setExtGState(graphicState);}
几乎和原代码一样,当然,这部分代码片段必须是在SWC就有的。 这样看来,发布调试版的SWF不仅浪费,也是不安全的。发布SWC特别要注意这一点,最好发布时加密。

IT时代网(关注微信公众号ITtime2000,定时推送,互动有福利惊喜)所有原创文章版权所有,未经授权,转载必究。
创客100创投基金成立于2015年,直通硅谷,专注于TMT领域早期项目投资。LP均来自政府、互联网IT、传媒知名企业和个人。创客100创投基金对IT、通信、互联网、IP等有着自己独特眼光和丰富的资源。决策快、投资快是创客100基金最显著的特点。

相关文章
中芯国际联手国家队斥500亿投建12吋晶圆制造 什么信号?
中芯国际等被美列黑名单 外交部:坚决反对美方无端打压中国企业
中芯国际遭“断粮”背后:芯片产业链加速国产化
被美国列入“黑名单”?中芯国际:未收到此类官方消息

精彩评论