您的位置:首页 > 其它

sothink swf decompiler反编译的常见错误

2011-11-25 23:09 405 查看
1. 当bytecode 出现new activation或者 dup的时候,会出出现下面语句.

1.1 loc_1;

//通常是loc_1=this或者loc_1=0, local=x

1.2 loc_1 = new ObjX();

new ObjectX().x = 0;

//通常是dup之后发生.

2. 当代码使用xml的查找功能时候,返编译出来的基本无效.

xml.@(id=1); 反编译出来的代码变成一个错误的循环.

3. 当代码使用alchemy库的部分,大量初始全局变量没有正确反编译, 应该是对script_info的相关init method没有做好工作.

本身alchemy的代码是x86 asm的as vm实现,正确也没有什么用. 写了个修改工具,直接抠出相关的bytecode做成swc.

4. 复杂的闭包函数会导致大量的dup, new activation等...语法就开始错乱了.

情形类似1.

5. 无法正常反编译 IProxy继承出来的类.

6. 对于 xml , dictionary 等, 使用for each, for in 语法混乱,令到代码看起来没有错,但无法正常工作.

7. meta-data丢失

将现有swf代码diy成swc感觉比较有趣, 比较pe容易多了。 下次找时间发表一下原理.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: