sothink swf decompiler反编译的常见错误

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容易多了。 下次找时间发表一下原理.

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值