前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Flash 加密和破解

Flash 加密和破解

作者头像
用户1258909
发布2018-07-03 15:47:34
2.4K3
发布2018-07-03 15:47:34
举报
文章被收录于专栏:拂晓风起拂晓风起

关于Flash(swf),我们需要明确一点:

***Flash字节码的意义都是公开的 所以如果cracker真的有足够的耐心他最终还是可以破解掉你的Flash。我们能做的只是尽量提高Flash被破解的门槛让cracker破解它需要消耗的时间大于自己更新版本的间隔就好了。

一般而言,对于游戏,无非是为了防止cracker修改游戏数据,制作外挂,当然也有人为了破解游戏,提取素材,提取音频,提取音乐等等。

现在Flash页游已经走下坡了,没多少人关注了,而且这种加密方案也比较成熟了。但是,正因为Flash小游戏很多,这里边大量的素材资源,也许就是非常不错的资料来源。

先简单回顾一下怎么做游戏的加密,防止破解或外挂:

 1、关键数据加密

适用防范对象   使用内存修改工具妄图直接修改关键数据的初级cracker 原理   关键数据不使用明文保存 具体做法   对关键数据的存取使用AES或XOR等算法进行处理保证关键数据在内存中不以明文保存(做一个类用于存取,每次把数据取出后用临时变量做加密解密)

2、修改数据包

适用防范对象   使用Fiddler等各种工具篡改回包或使用假数据发包的初中级cracker 原理   加密数据包并在数据包里面加入防伪信息 具体做法   对数据包内容进行简单的AES或XOR加密并在其中加入类似TCP/IP协议的Sequence ID前后台共同对数据包进行校验。

3、Flash初级加密

适用防范对象   会用Flash破解工具破解之后尝试对Flash源码进行修改的中高级cracker 原理   提高使用工具破解Flash之后读懂源码并进行修改的门槛 具体做法   直接使用工具如DoSWF等对Flash的关键代码进行加密和混淆 4、Flash高级加密 适用防范对象   没有足够的时间和耐心的高级cracker 原理   使用各种恶心的技巧对自己的Flash关键内容进行保护 具体做法   (1)对关键代码进行混淆 ——提高破解后读懂代码的门槛   (2)将保有关键逻辑的main.swf以二进制形式嵌入到工程里在外层使用loader的loadBytes()方法进行读取并实例化 ——提高直接被抓包抓到关键SWF的门槛需要cracker解析文件二进制内容才能拿出来关键的swf   (3)加载main.swf之前检测关键类是否已经被定义过并且将main.swf加载到与loader.swf不同的ApplicationDomain ——防止cracker用preloader等方法事先定义关键类用来顶替main.swf中的同名关键类提高类替换的门槛(父程序域覆盖子程序域)

  (4)关于第2点,还可以把二进制做得更绝一些,例如把二进制加密了,然后再在程序里边解密,而解密程序,又可以用Pixelbender来做(Pixelbender的破解又难了很多)。当然,最重要的是,必须先把loader部分混淆,让反编译软件无法直接得到可运行代码,这样cracker就失去耐心了。

好了,说完加密,那么现在这么多flash小游戏,破解一下,拿点素材来使用也是不错的选择。

反编译提取素材,当然要依赖于Sothink等反编译软件了,但是很多游戏的素材和主swf都以二进制形式嵌入的,这样对于sothink swf decompiler来说是无能为力的。反编译出来只有这样的空类:

这时候需要自己根据swf格式说明,写个程序提取出对应的二进制数据,再用sothink来反编译。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2014-09-26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  •  1、关键数据加密
  • 2、修改数据包
  • 3、Flash初级加密
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档