zoukankan      html  css  js  c++  java
  • Flash Player安全高级攻略

    转自:http://flash.9ria.com/thread-41568-1-1.html

    说一些显而易见的:

    • SWF很容易被反编译得到ActionScript代码。
              像"Sothink SWF decompiler"这样的应用在任何时间都可以做到。下一步...
    • 浏览器会缓存已经下载的SWF以便在将来更快的访问。
              IE缓存文件夹在“C:\Documents and Settings\USER\Local Settings\Temporary Internet Files\Content.IE5”(Window通常都隐藏这个文件夹,即使你把很多东西设置为可见,在地址栏中输入路径)。下一步...
    • 没有任何方法知道swf是否已经被篡改。
              没有签名...没有检查。下一步!
    • 客户端程序永远不能信任
              这是个事实。下一步?
    • 文件不能被加密(基本上大部分)
              Flash Player必须能够读取你的文件,因为它不知道你用什么加密,你必须"载入"一个加密的文件,加密文件的算法加载器中。但是你如何处理加载器呢?

    你必须关心的一些事情:

    • 在flash调用"ApplicationDomain"时的特征。
              ApplicationDomain类是一个分离类定义的组的容器。Application domains通常用于区分在相同安全域的类。它与徐同一类存在多个定义,也允许子类重复使用父类的定义。
    • 通常,触发从浏览器缓存中重新加载SWF的唯一一件事情是它的文件大小。(如果文件大小不是完全相同,则重新下载)。
    • Flash Player没有办法知道一个SWF是否被授权。
    • 浏览器没有办法知道一个SWF是否被授权。
    • Flash Player不关心SWF是否在文件的结尾填充了null字符。
              SWF包含它的大小,将被装入相应的大小,但是后面跟的是什么并不关心。


    案例1

    难点:我们必须这样做?

    让我们找一些想CheatEngine一样的软件,找到一些你想改变的有趣的数字(查看你的分数?),查找你的数字并改变它。做的好,朋友!

    应用程序被入侵,但是它不会再发生了!
    我添加了一些加密算法(AES/XOR)在内存值中

    案例2

    难点:开发人员知道内存欺骗的基本知识

    因此,它不工作...(你找不到任何感兴趣的东西)

    下载包注入软件(例如:Packet Porge或者额任何其他)。一些数据伪装包你想改变...改变它...然后将它发送到服务器。或者不改变它,发送几次相同的内容以添加交互频率。

    应用程序被入侵,但是它不会再发生了!
    我添加了一些加密(AES/XOR)包以增加包的数量递增ID以检测注入。

    案例3

    难点:开发人员知道关于网络包注入的基本知识

    因此,它不工作...(你不知道在这些包装中都传输了些什么,复制他们好像没有任何效果)

    描述:应用程序是由2个SWF文件组成(一个preloader和主程序)

    打开你的浏览器缓存,找到"Main.swf",把它拷贝到其他地方。

    在Sothink中运行它...反编译...重新编译FLA文件,修改你想要改变的地方(修改分数乘以10或者完全删除案例1和2中的保护措施),确保文件的大小与原来的大小完全一致(可以在文件的结尾添加NUL间隔,或者如果有需要的话删除一些素材确保它变小),然后将文件放回缓存中,重新载入文件。

    你做到了!

    应用程序被入侵,但是它不会再发生了!
    我通过某些东西加密了Main主文件,所以它不会被反编译。

    案例4

    难点:所以开发人员也知道反编译器?

    因此,它不工作了...(Main主文件不是一个SWF,且不能被反编译。)

    但是Flash Player可以运行这个应用... 当然可以了!加载器下载了主文件,加密文件,任何使用"Loader.loadBytes()"从内存中载入它。因为在loader中含有算法?是的!反编译...改变代码以ByteArray形式输出"加密文件"到一个文件中,通过"flash.net.FileReference"代码保持到你桌面。

    你现在已经有用Sothink反编译好的Main.swf了.(看案例2)

    你做到了!

    应用程序被入侵,但是它不会再发生了!
    我在整个工程中使用了代码混淆。他们不理解做了什么处理!
  • 相关阅读:
    oracle 10g 免安装客户端在windows下配置
    sql2005 sa密码
    使用windows live writer 有感
    windows xp SNMP安装包提取
    汉化groove2007
    迁移SQL server 2005 Reporting Services到SQL server 2008 Reporting Services全程截图操作指南
    foxmail 6在使用中的问题
    AGPM客户端连接不上服务器解决一例
    SpringSource Tool Suite add CloudFoundry service
    Java 之 SWing
  • 原文地址:https://www.cnblogs.com/sevenyuan/p/1627349.html
Copyright © 2011-2022 走看看