flash decompiler使用手记

传说有一种非常强大的大杀器,能够把任意的SWF文件反编译成源文件。自此程序员的工作暴露无遗
  我听说这种东西的时候感觉也是非常的新奇,自己从理论上分析了一把,觉得似乎也无可厚非:例如将EXE文件反编译成C代码,绝对可以。只不过一般的人完全看不懂而已,而对于那些能够看懂的当然会很不屑这种东西。 只是没有想到EXE的反编译 和SWF的反编译还是差别很大的,不过转念一想觉得这也是情理之中的事情:EXE(二进制文件)里面包含的是机器码,是最最最底层的代码,编译的时候名字会粉碎,并且最终全部转变成没有太大意义的0和1. 而AS是一种解释型的语言,在SWF里面保存的是中间代码,这种中间代码可强可弱。不过从反编译的结果来看,AS的中间代码还是比较弱的,从反编译生成的文件结果来看,所有类的名字得以保存,但是函数过程里的中间变量名字全部被粉碎
  我想大部分的人看见那些未被粉碎的类名,兴奋程度肯定盖过了看见那些被粉碎的中间变量,于是觉得F D这玩意儿,好使,绝对的好使。--我也是这样的。
  不同的是,以前我也就看着那些被粉碎的名字YY一把,怎么修改能够得到自己想要的效果。而昨天我就亲自动手修改了一把,显然不像我想的那样。

Flash Decompiler 只能反编译出源程序的框架,然而对反编译的程序进行编译,你不能得到目标SWF,这个过程中间会产生很多的错误和异常,对于小型的程序,你当然可以一个个的去修复这些潜在的错误和异常,但是对于而今动则上百个类的程序来说,你真的是有心无力--或者说--至少我是这样的 (这是我个人的使用心得,如果有人有好的见解,一定要告诉我,THANKS)

我的过程是这样的,对一个现有的SWF尝试进行反编译,F D很强大,能够判断出这是由一个FLEX的编译器生成的SWF文件,并能将其反编译成flex项目,而且使用flexbuider打开也完全没有问题 到这里我很兴奋
进入项目第一件事情就是编译,生成结果,然而问题从这里就产生了,你run 你debug修复一些Null Pointer,完全不起作用,程序运行的时候是彻底的白屏,并且不断的抛出这些异常。
当然那时的我天真的以为这只是一些小瑕疵,于是我尝试着对一些异常进行修复,但是修复到pv3d包内部异常的时候 我停止了,我突然觉得这是一项不可能完成的事情,PV3D这种充分测试的包一般是不可能有错误的。 异常的位置还有其他一系列著名的flex lib

于是我得出了我对flash decompiler的结论: 想要使用它来yy的人可以免了,它绝对不是你想的那样。但是不要太悲观,毕竟它反编译出了程序的架子,所以这些程序的架子对你还是很重要的,如果使用别人的这些架子 并且合适的填入你想要的代码,我觉得 也可以节省你很可观的一笔时间。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值