NZND壳-加密算法改良

由于上文提到我们的加密算法是一种动态移位Xor算法,但是由于其特性导致加解密采用不同的密钥,使得解密密钥存储与保护成为一个难题.
在我们的规划中试图通过代码块的解密密钥放置在临近区域的加密区域中,来阻止代码的还原.
一旦破解者在原内存中阻止了解密后的内容被转换成加密状态,这将导致下一个块的解密错误.

出于以上需求,我们对加密算法进行了改良:

加密流程:
加密流程

  1. 根据上一块的加密状态进行固定种子的Xor加密得到解D.
  2. 用此解对待加密块进行Xor加密
  3. 根据解D还原动态Xor加密块至原Xor加密状态.

解密流程:
解密流程

除了我们需要先将上一个块的状态转换为Xor加密状态外与加密过程并没有什么不同.
动态Xor的作用是从上一块中提取一个指纹.值得注意的是,由于Xor的某些特性,导致这个指纹并不是那么靠谱.
至此我们对加密的邻近代码区块之间进行了关联以保证它们不总是把自己的解密状态展示在内存中.

我自己竟然迅速想到了破解之道.值得庆幸的是,即使将原理明明白白告诉破解者,破解者也会费上好大一番周折.或许我们目的-一款保护壳已经达到了.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值