`
ch_kexin
  • 浏览: 909458 次
  • 性别: Icon_minigender_2
  • 来自: 青岛
社区版块
存档分类
最新评论

Flash加密解密(三)——特殊混淆让asv2010解析代码失败

 
阅读更多

1.Flash加密解密(一)——doswf混淆还原
2.Flash加密解密(二)——Doswf生成代码分析

3.Flash加密解密(三)——特殊混淆让asv2010解析代码失败

从前面两节的分析可以看出,脆弱的swf文件极其容易被一些现成的工具反编译回可执行源代码。一旦可以进行动态调试,那 么这个文件将被他人掌控,即使你使用了最先进的加密算法来保护你的资源,但是你的解密操作总会暴露在你的代码中。所以必须重点保护好代码来确保核心算法以 及资源安全。

混淆的意思就是改变函数或变量名,让解密者难以很直观的看出其中的含义。对于编译好的swf文件来 说,它保存有全局变量以及函数名信息,但是在虚拟机运行的时候,这些变量名和函数名对于执行并没有影响,虚拟机只依靠他们id来区分他们。这种机制就给予 我们混淆带来了便利。我们可以对其中的变量名和函数名进行修改,让他们被反编译回去后,重新编译会发生错误,这样就增加了破解的复杂程度。

这次给大家介绍如何手动混淆一个swf文件,并提供一种方法,只需要改变swf中的一个字符,就可以使asv2010无法正常解析出代码。

现在开始我们的内容~

 

本帖隐藏的内容


首先我们先写一个测试文件,这个文件的作用是在舞台上显示一个“hello”的文本框,并设置其alpha值,代码如下:

  1. package
  2. {
  3.         import flash.display.MovieClip;
  4.         import flash.text.TextField;
  5.         import flash.text.TextFormat;
  6.         public class Test extends MovieClip
  7.         {
  8.                 private var a1:int;
  9.                 private var a2:Number;
  10.                 private var a3:String;
  11.                 private var t1:TextField;
  12.                 public function Test()
  13.                 {
  14.                         a1 = 275;
  15.                         a2 = 200;
  16.                         a3 = "test2";
  17.                         t1=new TextField();
  18.                         fun1();
  19.                         fun2();
  20.                         fun3();
  21.                 }
  22.                 public function fun1()
  23.                 {
  24.                         t1.x = a1;
  25.                         t1.y = a2;
  26.                         t1.text = "hello";
  27.                         addChild(t1);
  28.                         trace(t1.text);
  29.                         
  30.                 }
  31.                 public function fun2()
  32.                 {
  33.                         t1.alpha = 0.8;
  34.                 }
  35.                 public function fun3()
  36.                 {
  37.                         t1.rotation = t1.rotation * 0.8;
  38.                 }
  39.         }
  40. }
复制代码

运行结果如下:

1.png

我们导出swf文件,然后用WinHex文件打开(如果swf文件被压缩,则先解压缩后在打开),我们可以看到swf文件中的内容:

 

2.png

 

具体文件各个地方表示的什么意思,可以参考官方文档。

 

我们往下面翻,可以看到:

 

3.png

 

我们刚才代码中定义的全局变量和函数的名字都在这里。

现在我们就可以对他们进行混淆了,你可以选择你喜欢的字符进行混淆。

 

我们对这些名字进行更改,将所有字符都改为数字:

 

5.png

 

保存后,发现swf可以正常运行,导入到asv中查看:

6.png

 

发现函数名和变量名都变成了数字,如果重新编译将无法通过。


如何让asv获取不到任何代码(仅针对asv2010及以前版本)?其实很简单,我们只需要打开编译好的swf文件,然后将任意变量名的第一个字符改为一个特殊字符,如下:

7.png

 

我们发现asv没有解析出任何代码:

8.png

 

分享到:
评论

相关推荐

    ASV2012(Action Script Viewer)解密反编译DoSWF加密Flash之图文教程

    三、使用ASV2012解密反编译DoSWF加密Flash文件 要使用ASV2012解密反编译DoSWF加密Flash文件,需要按照以下步骤操作: 1. 首先,将加密的Flash文件拖入ASV2012的窗口,在“动作脚本”选项卡中可以看到一些乱码、方块...

    ASV2012(Action Script Viewer解密反编译DoSWF加密Flash之完全教程

    ASV2012的出现,为这些专业人士打开了一扇门,让他们不再为加密的Flash文件而感到束手无策。在熟练掌握这些技巧后,即使是复杂的加密文件,也可以通过这套流程,顺利地进行反编译,从而为工作和学习提供极大的帮助。

    ASV2012(Action Script Viewer)解密反编译DoSWF加密Flash

    标题与描述均提及了“ASV2012(Action Script Viewer)解密反编译DoSWF加密Flash”的过程,这一主题聚焦于利用ASV2012软件对使用DoSWF工具加密的Flash文件进行解密和反编译的技术细节。下面,我们将深入探讨这一过程...

    matlab开发-使用matlabguiguide进行凯撒密码加密和解密

    - `csencryptdecrypt.asv`: 这可能是加密解密函数的保存文件,其中包含了加密和解密的具体算法。 - `caesarcipher.fig`: 这是GUI的图形界面文件,可以被MATLAB加载以显示和运行GUI。 - `caesarcipher.m`: 这是MATLAB...

    asv2010actionscript viewer

    ASV2010ActionScript Viewer是一款专门用于查看和分析ActionScript代码的工具,主要针对Adobe Flash平台。ActionScript是Adobe Flash Professional、Flash Builder等软件中使用的编程语言,用于创建交互式内容、游戏...

    AES加密和解密算法

    AES加密和解密算法的MATLAB实现算法,经过验证能够实现其功能,很值得大家来学习! AES_matlab\add_round_key.m AES_matlab\aes_demo.m AES_matlab\aes_init.m AES_matlab\aff_trans.m AES_matlab\cipher.m AES...

    swf反编译利器 asv2010

    可以反编译大部分网页游戏swf 参考别人的idea

    swf反编译工具asv 6.0

    ASV 6.0是一款专为SWF(ShockWave Flash)文件设计的反编译工具,主要用于解析和提取Flash文件中的源代码、图形资源、音频和动画等元素。这款工具在Alpha 4版本中已经移除了时间限制,使得用户可以无限制地使用其...

    根据代表性序列预测OTU/ASV生活史策略——寡营养型or富营养型

    丰富的资源会促进细菌的生长,特别是富营养型细菌的生长。快速的生长需要大量的核糖体,富营养性细菌会持有更多的核糖体RNA操纵子(number of ribosomal RNA operons, rrn)。我们可以根据核糖体RNA操纵子的数目来对...

    DES.zip_加密解密_matlab__加密解密_matlab_

    `.doc`和`.docm`文件可能是加密前后的示例文档,`.asv`文件通常不是标准格式,可能需要特殊工具处理,而`.ppt`文件`Irrational number (2).ppt`可能与该主题无关,但如果是密码保护的PPT,也可以用类似的方法进行...

    flash swf 反编译工具

    **文件“asv2010”** 根据提供的文件名,这可能是ASV工具的一个版本,可能是2010年的更新。ASV工具可能包含以下功能: 1. **SWF解析**:读取并解析SWF文件的结构和内容。 2. **ActionScript解码**:将编译后的...

    反编译 Flash 的 Action Script 脚本

    3. **查看脚本**:ASV会解析SWF文件,并显示Action Script代码。你可以浏览函数、类和变量等各个部分。 4. **分析代码**:通过ASV的代码高亮和大纲视图,可以更好地理解代码结构和逻辑。 5. **导出源代码**:如果...

    ASV20009

    【标题】"ASV20009"可能是指一个软件版本号或者是一个特定的项目代号,但没有具体的上下文信息,我们无法确定它的详细含义。然而,我们可以从【标签】"源码"和"工具"来推测,这可能与一款开源软件或开发工具有关。...

    Action Script Viewer2010

    5. **版本更新**:"asv2010pr03"可能代表该软件的一个版本或者补丁,通常更新会包含性能改进、新功能添加或已知问题修复。 6. **学习资源**:对于初学者来说,Action Script Viewer可以作为学习ActionScript的辅助...

    服务器虚拟化aSV培训.pptx

    在本文中,我们将深入探讨深信服公司的服务器虚拟化解决方案aSV,以及它如何满足不同客户的需求。 首先,aSV的目标客户需求主要集中在以下几个方面: 1. **系统备份需求**:许多中小规模客户由于成本考虑,缺乏...

    Action Script Viewer (ASV)5.01

    Action Script Viewer (ASV)是款SWF (Flash)反编译的(decompiler 是翻译机器语言或有时目标代码的计算机程序(产品从编译器) 成一种高级语言(原始代码) 。由比较, 反汇编程序翻译机器语言成汇编语言。)win32应用程序....

    SWF文件加密tool

    用于加密swf文件,防止ASV软件破解,支持的最高版本为ASV6.0

    深信服服务器虚拟化asv操作步骤.pdf

    深信服服务器虚拟化asv操作步骤 服务器虚拟化操作步骤是指将客户现有的业务系统从物理主机迁移到虚拟机平台(VMP)上运行的过程。为了确保操作的成功,需要确认以下必要条件: 1. 环境确认:在实施服务器虚拟化...

    ActionSprite View 2010

    可查看SWF文件的源代码,用于学习。分享给需要的朋友。开源光荣。

Global site tag (gtag.js) - Google Analytics