关于tcp的flash网页游戏封包解密如何解密

扫码下载APP
随时选购服务
需求发布后1小时内收到服务商响应每个需求平均有10个服务商参与95%以上的需求得到了圆满解决所有需求不向雇主收取任何佣金好的包装增加视觉销售力
关于一个flash网页游戏的一条封包解密
关于一个flash网页游戏的一条封包解密
雇主预算:¥500.00
已收到 0 个服务商的文案稿件
有相似问题想解决?专业顾问来帮助您
通过猪八戒网实名认证,保证身份真实可靠
完成手机认证,保证能随时联系到服务商
该需求下的优秀交稿
交易成功的需求
其它工具软件相关需求flash 加密解密的相关知识说明
作者:佚名
字体:[ ] 来源:互联网 时间:02-18 15:03:58
本文主要讲一些flash加解密的知识,并不鼓励破解flash文件。经过一段时间的研究,目前本人能破解90%左右的flash加密,对于flash网络游戏(非简单的网页游戏),分析了现有过的很多网络flash游戏,包括一些作者的DEMO,可以复制刷钱或写脱机外挂的,是100%。
希望大家了解一些解密方面的东西,对自己的心血好好保护。最好的方法就是完全不给,一旦发布,必须做好被人破解的准备。另外,无论何时,不是技术相当人之间的交流性质的话,不要发论坛短消息或邮件和我这一话题。Q1:为什么要破解flash文件我认为目前有五种性质:一 是通过破解别人的文件,了解别人的思路,进行模仿或学习二 汉化优秀flash软件,游戏,让大家分享。或因为游戏设置不平衡,改部分参数,如xxxx百倍经验值版等等。三 一些小公司,仅仅通过将别人的作品,改头换脸,把自己的标望上面一打。四 一些个人,行为同上。五 通过flash破解,来了解flash加密技术。而为什么加密,基本上原因就只一种,保护自己的心血。Q2:怎么才算是破解了由Q1,我们也可以这么分一 反编译出大部分代码,尤其是核心代码二 需要得到所有的字符串,参数的修改三 这是最无耻的,什么都破解的了。因为不需要完整破解,很多加个读取的壳可能就能加水印了。四 同上五 此类基本同一Q3:加密的总被破解了,再没什么加密是安全的了吧?Swf的文件格式,现在已经是透明的了,很多人,人云亦云的说,因为flash文件格式的透明,flash加密总是会被解开的。此说法完全没道理。不过flash是脚本语言,它不能自己运行,必须要flashplayer或类似的东西进行解释,所以不管怎么加密,你必须保证flashplayer仍然认识它。由Q2,如有些方式的加密,反编译后可以生成伪码,而且伪码也能运行,但是人看不懂,不能修改。这也能算加密成功。但是只要让flash变成既可以运行,但是又不是人可以看懂的代码,太难。目前见过几个混淆可以达到这种,方式不详。有些方式的加密,用软件完全反编译不能。手动也非常辛苦,最后得不尝失,即使破解了,也不方便修改。即使破解了一个,也不一定能破解同样方式的第二个。这也算成功了。Do基本做到了这一点。不过doswf太能损坏文件了,且试用版水印+弹窗,我并不大家使用。基本上,目前主要就用swfEncrypt直接加密了,要么自己想办法,自己写。最好的加密是把文件格式变成exe,用别的软件给它加壳。Exe加解密技术成熟得多。但是缺点是,大家都是要的网络上能流通的swf啊。Q4:怎么加密?Flash,现在主要就分和程序。Swf是tag标签格式的文件,支持的标签也并不多。而flash中的库,是暴露在最外面的,自身完全无法加密。要保护动画,必须要加loader的壳。而action部分,支持很多指令。Opcode其实和汇编码没多大区别。(另外这里插一句,有些人断章取意的认为alchemy能让flash执行效率高N倍,也没道理,如果看过官方的详细说明,外加avm2的说明的话,就应该知道,大多abc只是转换成了flash本身支持的opcode,极少数为avm2额外的专门的解释器,alchemy的出现,最多是为了方便别的平台的程序员而已,不久以后可能我这观点也行不通了)。因此,action部分能做很多文章,而市面上的加密软件也多是在这部分上动脑筋。你也可以写个loader,配合改一些动画swf的数据。然后加密as部分的loader来达到加密动画的目的。不过现在,商业气息太浓,产品没测试好就拿出来卖了。真没想到5个小时不到就能把swfEncrypt6.04完全搞定。即使因为没读完avm2的tag及一些detag而不能完全还原成,也能轻松的注入自己的指令到加密后的文件中,能修改,也能。Q5:解密需要些什么?解构的头脑,对代码的熟悉,外加大量的猜码运气。其实大多flash也没怎么加密的。一般用软件可以直接反编译。swf8及以前,swf9,swf10在tag上有很大不同。我也没研究透彻,主要讲下之前的。Swf8及以前的是用avm1解释,swf9如果包含byteArray asset的,和swf10基本可以视为一致。因此建议as3加密时,即使你用不上,也把byteArray,bitmapdata,loader类导入进去,在原先代码基础上,间接插上垃圾代码。Swf9,swf10本身的废话部分也比swf8及以前多多了,本身破解难度要高一些。目前市面上这些解密的软件,由效果大小来排Swf10方面闪客精灵,WINHEX,tamarin相关工具,nemoSwf9方面闪客精灵,ASV,WINHEX,tamarin相关工具,nemoSwf8方面Asv。flasm,闪客精灵,WINHEX,flash游戏修改大师另外,如果是要破解游戏,必须还有一款用得熟练的游戏修改软件。最近不知道有什么新的好,我用习惯了GameExpert,虽然功能很少。网络方面,还得再加WPE(这软件忒久了,,以前自己做星际和传奇的简单外挂就用的它,功能也不怎么样,就没发现换代的东西)。至于什么flash吸血鬼,URLEDITOR,UE用处不大,flash橡皮插偶尔还能一用。基本上,软件是对于新手破解用的,这在Q1里面,新手一般是 一 三四 这类人。闪客精灵和WINHEX因为功能强大,基本无可替代。而其他的,必须得有能力去写软件,去帮助你完成这些活。Q6:flash可以动态修改?很多人都试图用金山游侠修改过flash游戏,结果没人修改成功,实际上因为现在很多游戏都开始采用动态内存,所以基本上金山游侠这类软件改不了。Flash可能是网页上最早采用防护动态修改的技术了吧。我以前成功过好几次,理论上来讲,基本上所有程序都是调内存里再运行,像flash,基本上和flashplayer一起装内存里运行。所以改内存绝对是有效果的。只是flash数据和很多dos,win下面的游戏数值表示方法不一样,因为动态内存,位置也总跑,用金山游侠基本很难找到。不过现在有flash游戏修改大师这一工具,as2的游戏算是不需要费脑筋去想数值存在哪,在哪个范围跳来跳去,用什么方法锁定它们而不至于死机。游戏人只是因为游戏难度过大想修改,建议直接用flash游戏修改大师,就此打住。Q7:swf如何加密才比较容易防止破解呢?其实上面也提到过一些,一个成熟的加密:1 加壳,一定要用URLLoader+ByteArray读一次2 读这一次的过程中,可能会用到某个算法,这一算法一定不能每次一样,可以随机生成。而密匙完全可以以另一种算法,加密后放在同一文件中。比如说先读某几个bytes来知道是什么算法,再整个的解密。密匙藏法太多了,我另有一篇文章有相关的内容,目前还未发表过。3 大量改方法名,所有都改,让破解者很难猜。改法也完全可以随机。4 手动改跳转和push命令部分。Push和jump历来都是加密用兵之地。目前我也没摸透什么改法可以让最新闪客精灵和asv完全挂掉。所有加解密软件都是很规矩的读tag数据的,flashplayer有点不同。因为这个,所以一个用某软件加密过的swf,不可能再被另一个加密软件再加密了。可以视为后一个加密软件没能力解读之前的加密。(这方面具体的我又写了一篇文章,也暂未发表,很早以前看过有个老外写过很多,有人翻译了,可以网上找找看。记得那里面提到的方法已经对现在的闪客精灵无效了,不过很有启发。)5 加无效代码进去。无效代码基本是if之类,不怎么拖速度。目前只发现几个加密swf能够在真实代码之间插进大量无效代码。而大部分都是加在头和尾。。。和没加密没什么区别。6 死循环!一个让除了flashplayer外,所有加解密软件都挂掉的死循环。这招算比较狠的,不过好难啊,改jump也能产生这种效果,不过多半是flashplayer也挂掉,基本只能手动不靠批量,太依靠运气。Q8:怎么算是加密成功了?由Q2:一 首先得让asv,闪客精灵完全捕捉不到真实代码的影子。二 能隐藏库元件的话,加分!三 闪客精灵和asv在反编译时挂掉了四 手动分析发现,代码太多扰码。好不容易解读后,发现只是能达到效果的伪码,却不能还原成原始代码。五 只能完全手动分析,太耗时,放弃基本上,一个加密至少要达到第四点才能算是成功了。如果你找到了办法使你的swf可以让闪客精灵和asv挂掉,恭喜你。之后想办法在中间加大量的无效码吧。这样如果不是很严重的利益驱使,你的swf就没人能破了。
大家感兴趣的内容
12345678910
最近更新的内容关于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来反编译。
阅读(...) 评论()

我要回帖

更多关于 解密类网页游戏 的文章

 

随机推荐