flash 加密解密的相关知识说明

平面设计 2021-07-03 14:34www.168986.cn平面设计培训
希望大家了解一些解密方面的东西,对自己的心血好好保护。最好的方法就是完全不给,一旦作品发布,必须做好被人破解的准备。,无论何时,不是技术相当人之间的交流性质的话,不要发论坛短消息或邮件和我讨论这一话题。


Q1:为什么要破解flash文件
我认为目前有五种性质:
是通过破解别人的文件,了解别人的编程思路,进行模仿或学习
汉化优秀flash软件,游戏,让大家分享。或因为游戏设置不平衡,改部分参数,如xxxx百倍经验值版等等。
一些小公司,仅仅通过将别人的作品,改头换脸,把自己的标望上面一打。
一些个人,行为同上。
通过flash破解,来了解flash加密技术。

而为什么加密,基本上原因就只一种,保护自己的心血。


Q2:怎么才算是破解了

Q1,我们也可以这么分
反编译出大部分代码,尤其是核心代码
需要得到所有的字符串,参数的修改
这是最无耻的,什么都破解的了。因为不需要完整破解,很多加个读取的壳可能就能加水印了。
同上
此类基本同一


Q3:加密的总被破解了,再没什么加密是安全的了吧?

Swf的文件格式,现在已经是透明的了,很多人,人云亦云的说,因为flash文件格式的透明,flash加密总是会被解开的。此说法完全没道理。不过flash是脚本语言,它不能自己运行,必须要flashplayer或类似的东西进行解释,所以不管怎么加密,你必须保证flashplayer仍然认识它

Q2,如有些方式的加密,反编译后可以生成伪码,而且伪码也能运行,人看不懂,不能修改。这也能算加密成功。只要让flash变成既可以运行,又不是人可以看懂的代码,太难。目前见过几个混淆可以达到这种效果,方式不详。

有些方式的加密,用软件完全反编译不能。手动也非常辛苦,得不尝失,即使破解了,也不方便修改。即使破解了一个,也不一定能破解同样方式的第二个。这也算成功了。Doswf基本做到了这一点。不过doswf太能损坏文件了,且试用版水印+弹窗,我并不建议大家使用。

基本上,目前主要就用swfEncrypt直接加密了,要么自己想办法,自己写。最好的加密是把文件格式变成exe,用别的软件给它加壳。Exe加解密技术成熟得多。缺点是,大家都是要的网络上能流通的swf啊。


Q4:怎么加密?

Flash,现在主要就分动画和程序。
Swftag标签格式的文件,支持的标签也并不多。而flash中的库,是暴露在最外面的,自身完全无法加密。要保护动画,必须要加loader的壳。action部分,支持很多指令。Opcode其实和汇编码没多大区别。(这里插一句,有些人断章取意的认为alchemy能让flash执行效率高N倍,也没道理,如果看过官方的详细说明,外加avm2的说明的话,就应该知道,大多abc只是转换成了flash本身支持的opcode,极少数为avm2额外的专门的解释器,alchemy的出现,最多是为了方便别的平台的程序员而已,不久以后可能我这观点也行不通了)。,action部分能做很多文章,而市面上的加密软件也多是在这部分上动脑筋。你也可以写个loader,配合改一些动画swf的数据。然后加密as部分的loader来达到加密动画的目的。

不过现在,商业气息太浓,产品没测试好就拿出来卖了。真没想到
5个小时不到就能把swfEncrypt6.04完全搞定。即使因为没读完avm2tag及一些debugtag而不能完全还原成源码,也能轻松的注入自己的指令到加密后的文件中,能修改,也能删除



Q5:解密需要些什么?

解构的头脑,对代码的熟悉,外加大量的猜码运气。其实大多flash也没怎么加密的。一般用软件可以直接反编译。swf8及以前,swf9swf10tag上有很大不同。我也没研究透彻,主要讲下之前的。Swf8及以前的是用avm1解释,swf9如果包含byteArray asset的,和swf10基本可以视为一致。建议as3加密时,即使你用不上,也把byteArray,bitmapdata,loader类导入进去,在原先代码基础上,间接插上垃圾代码。Swf9swf10本身的废话部分也比swf8及以前多多了,本身破解难度要高一些。

目前市面上这些解密的软件,由效果大小来排
Swf10方面
闪客精灵,WINHEXtamarin相关工具,nemo
Swf9方面
闪客精灵,ASVWINHEXtamarin相关工具,nemo
Swf8方面
Asvflasm,闪客精灵,WINHEXflash游戏修改大师

,如果是要破解游戏,必须还有一款用得熟练的游戏修改软件。最近不知道有什么新的好,我用习惯了GameExpert,虽然功能很少。网络方面,还得再加WPE(这软件忒久了,,以前自己做星际和传奇的简单外挂就用的它,功能也不怎么样,就没发现换代的东西)

至于什么flash吸血鬼,URLEDITORUE用处不大,flash橡皮插偶尔还能一用。
基本上,软件是对于新手破解用的,这在Q1里面,新手一般是
这类人。闪客精灵和WINHEX因为功能强大,基本无可替代。而其他的,高手必须得有能力去写软件,去帮助你完成这些活。



Q6:flash可以动态修改?

很多人都试图用金山游侠修改过flash游戏,结果没人修改成功,实际上因为现在很多游戏都开始采用动态内存,所以基本上金山游侠这类软件改不了。Flash可能是网页上最早采用防护动态修改的技术了吧。

我以前成功过好几次,理论上来讲,基本上所有程序都是调内存里再运行,像flash,基本上和flashplayer一起装内存里运行。所以改内存绝对是有效果的。只是flash数据和很多dos,win狼蚁网站SEO优化的游戏数值表示方法不一样,因为动态内存,位置也总跑,用金山游侠基本很难找到。

不过现在有flash游戏修改大师这一工具,as2的游戏算是不需要费脑筋去想数值存在哪,在哪个范围跳来跳去,用什么方法锁定它们而不至于死机。游戏人只是因为游戏难度过大想修改,建议直接用flash游戏修改大师,就此打住。


Q7:swf如何加密才比较容易防止破解呢?

其实上面也提到过一些,一个成熟的加密:
1 加壳,一定要用URLLoader+ByteArray读一次
2 读这一次的过程中,可能会用到某个算法,这一算法一定不能每次一样,可以随机生成。而密匙完全可以以另一种算法,加密后放在同一文件中。比如说先读某几个bytes来知道是什么算法,再整个的解密。密匙藏法太多了,我另有一篇文章有相关的内容,目前还未发表过。
3 大量改方法名,所有都改,让破解者很难猜。改法也完全可以随机。
4 手动改跳转和push命令部分。Pushjump历来都是加密用兵之地。目前我也没摸透什么改法可以让最新闪客精灵和asv完全挂掉。所有加解密软件都是很规矩的读tag数据的,flashplayer有点不同。因为这个,所以一个用某软件加密过的swf,不可能再被另一个加密软件再加密了可以视为后一个加密软件没能力解读之前的加密。(这方面具体的我又写了一篇文章,也暂未发表,很早以前看过有个老外写过很多,有人翻译了,可以网上找找看。记得那里面提到的方法已经对现在的闪客精灵无效了,不过很有启发。)
5 加无效代码进去。无效代码基本是if之类,不怎么拖速度。目前只发现几个加密swf能够在真实代码之间插进大量无效代码。而大部分都是加在头和尾。。。和没加密没什么区别。
6 死循环!一个让除了flashplayer外,所有加解密软件都挂掉的死循环。这招算比较狠的,不过好难啊,改jump也能产生这种效果,不过多半是flashplayer也挂掉,基本只能手动不靠批量,太依靠运气。


Q8:怎么算是加密成功了?

Q2:
得让asv,闪客精灵完全捕捉不到真实代码的影子。
能隐藏库元件的话,加分!
闪客精灵和asv在反编译时挂掉了
手动分析发现,代码太多扰码。好不容易解读后,发现只是能达到效果的伪码,却不能还原成原始代码。
只能完全手动分析,太耗时,放弃

基本上,一个加密至少要达到第四点才能算是成功了。如果你找到了办法使你的swf可以让闪客精灵和asv挂掉,恭喜你。之后想办法在中间加大量的无效码吧。这样如果不是很严重的利益驱使,你的swf就没人能破了。

Copyright © 2016-2025 www.168986.cn 狼蚁网络 版权所有 Power by