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

2019-10-08 15:29:53刘景俊

其实上面也提到过一些,一个成熟的加密:
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就没人能破了。