sothink反编译后常见错误
从事flash的几乎没有没经历过反编译阶段,我的看法是:用来参考别人思路,学习提高可以,如果直接改来当做自己的作品就有点可耻了。做反编译的有好几家,常用的是asv,sothink,Trillix。言归正传,事情是这样的,之前as3模仿过一个图片切换的东东,(因为原来as2版本的似乎有点跨域问题),后来我格了系统,丢了源文件,再后来老沙向我要那个东西,并且要做点修改,这时候只能反编译了。
总结了点反编译后文件出错规律,拿来说说吧
1.添加了奇怪的数字字符
总觉得这玩意和编码有关,因为有的时候会在函数定义的下面一行多出一串数字,比较简单的,删除即可。
2.导入错误的包,或者路径错误.
比如明明是main.as 还要import main.*; @-@
3.while优化
while循环比for循环优化,所以很多代码中的for循环会被优化为while,这时候变量没有赋初始值,自增上限等往往会有边界错误,这个错误往往会引发undefined,等运行时错误。
4.块变量
到目前为止,flash没有块变量,也就是一个函数体中的变量唯一,但是反编译的东东有的时候会一个变量有多个含义,这时最好把_loc_1,_loc_2等改成有意义的单词。
5.类型错误
这种错误的产生很是匪夷所思,比如会把一个变量定义为string,然后给string添加个动态属性。这时候往往让人感觉无处下手,其实是类型错误导致的。
ok,暂且记录下心得,也算是新博客第一篇,提供下修改过反编译的代码
Popularity: 35% [?]
分类: flash&flex

最新评论