Actionscript 3 在SWF文件中反编译Bin文件

Actionscript 3 在SWF文件中反编译Bin文件,actionscript-3,flash,decompiling,Actionscript 3,Flash,Decompiling,我使用JPEXS Free Flash Decompiler v.10.0.0反编译了swf文件,当我反编译swf文件时,我只看到2个脚本: 加料机 $gamename-web_秒$aba37a 在binaryData文件夹中,有一个名为: 定义数据(1:gamename-web_sec$aba37a……) 以下是反编译swf的树: gamename.swf 标题 二进制数据 DefineBinaryData(1:gamename websec$aba37a 框架 剧本 加料机 $gam

我使用JPEXS Free Flash Decompiler v.10.0.0反编译了swf文件,当我反编译swf文件时,我只看到2个脚本:

  • 加料机
  • $gamename-web_秒$aba37a
  • 在binaryData文件夹中,有一个名为:

  • 定义数据(1:gamename-web_sec$aba37a……)
  • 以下是反编译swf的树:

  • gamename.swf
    • 标题
    • 二进制数据
      • DefineBinaryData(1:gamename websec$aba37a
    • 框架
    • 剧本
      • 加料机
      • $gamename-web_秒$aba37a
  • 在appLoader中,以下是脚本:

    package
    {
       import flash.display.Loader;
       import flash.display.Sprite;
       import flash.system.ApplicationDomain;
       import flash.system.LoaderContext;
       import flash.utils.ByteArray;
       public class AppLoader extends Sprite
       {
          private var content:Class;
          public function AppLoader()
          {
             content = §gamename-web_sec$aba37a95a98fb59f905d8915dbd77871-2007405621§;
             super();
             var loader:Loader = new Loader();
             addChild(loader);
             var ba:ByteArray = new content();
             var bamod:ByteArray = new ByteArray();
             bamod.writeBytes(ba,1,ba.length - 1);
             loader.loadBytes(bamod,new LoaderContext(false,new ApplicationDomain()));
          }
       }
    }
    
    $gamename-web_sec$aba37a…操作脚本:

    package
    {
       import flash.utils.ByteArray;  
       public class §gamename-web_sec$aba37a95a98fb59f905d8915dbd77871-2007405621§ extends ByteArray
       {
          public function §chitchatcity-web_sec$aba37a95a98fb59f905d8915dbd77871-2007405621§()
          {
             super();
          }
       }
    }
    
    我看到它正在加载带有二进制数据的swf游戏。当我尝试导出bin文件并再次尝试使用JPEXS Flash反编译程序加载它时。它显示的是

  • [2744232]
    • 标题
    • 形状
    • 精灵
    • 二进制数据
      • 定义数据(51763)
      • 定义数据(11730)
    • 框架
    • 其他
      • 错误标签
      • 未知(ID=377)
      • 未知(ID=909)
      • 未知(ID=544)
      • 未知(ID=879)
      • 错误标签
      • 未知(ID=777)
    • 剧本
      • 框架1
        • 作用
  • 它显示了“其他人”文件夹中有太多未知对象

    执行p代码源:(因为actionscript源为空)


    你们知道我怎样才能反编译swf文件吗?我有一个所有者的许可,他想让我反编译它,这样我们可以更好地保护游戏。

    只是猜测一下,在那之前,内部文件被压缩并正确地混淆了。如果我是设计保护的人,我也会确保内部文件会被加密如果在错误的环境中解压,则不会运行。@Organia在swf文件的早期版本中,我可以对其进行反编译,但有些脚本名为$obfs55,$obs??类似于此,但仍然可读,因此我仍然可以编辑游戏。然后这是下一次更新。重命名标识符是一种模糊处理方法,但不是唯一的方法。下一次更新level与ABC字节码混淆,因此它的执行方式与未混淆的字节码相同,但它以普通编译器永远不会产生的方式重新组织。问题是,自动化这种混淆(即使输出随机化)非常容易虽然需要专业人员来解开它,但需要很多时间和工具来处理原始的ABC代码,因为反编译器无法从中得到任何东西(好吧,这就是重点)@Organia你能帮我尝试反编译swf吗?我会给你发送swfNo的链接,太麻烦了。我知道它是如何工作的,因为我在2006年(我想)为AS1/AS2应用程序编写了一个模糊器。正如我上面所说的,保护代码需要一眨眼,反向工程需要几个小时(甚至几天)(您可以尝试免费演示模式,并亲自查看)。一旦SWF代码正确地进行了模糊处理,编写具有相同功能的应用程序比反编译保护程序更快。很酷,对吧?只是猜测,内部文件在此之前已被压缩并正确地进行了模糊处理。如果我是设计保护的人,我也会确保内部文件在以错误的方式解包时不会运行nEnvironment.@Organi在swf文件的前一版本中,我能够对其进行反编译,但有些脚本名为$obfs55、$obs??类似于此,但仍然可读,因此我仍然能够编辑游戏。然后这是下一次更新。重命名标识符是一种模糊处理方法,但不是唯一的方法。下一级是处理ABC字节码因此,它的执行方式与未模糊处理的相同,但以普通编译器永远不会产生的方式重新组织。问题是,自动化这种模糊处理(即使输出随机化)非常容易虽然需要专业人员来解开它,但需要很多时间和工具来处理原始的ABC代码,因为反编译器无法从中得到任何东西(好吧,这就是重点)@Organia你能帮我尝试反编译swf吗?我会给你发送swfNo的链接,太麻烦了。我知道它是如何工作的,因为我在2006年(我想)为AS1/AS2应用程序编写了一个模糊器。正如我上面所说的,保护代码需要一眨眼,反向工程需要几个小时(甚至几天)(你可以尝试免费演示模式,并亲自查看)。一旦SWF代码被正确地混淆,编写具有相同功能的应用程序要比反编译保护更快。酷,对吗?
    Jump loc0005
    loc0005: