从验证算法创建密钥生成器算法

逆向工程 拆卸
2021-07-05 08:54:18

我知道这个问题会相当模糊,但我不确定如何从这里开始。

我正在尝试了解如何制作密钥生成器。

我一直在玩 IDA 并设法将应用程序密钥检查函数重建为 C,直到我可以检查密钥是否有效。这个过程使用了很多按位运算,例如移位和掩码,这让我想知道如何反转该算法。

验证步骤如下:

  1. 从序列号中,使用将字符映射到其他值的关联表
  2. 从这些值中,使用带有 bitshift|bitmasks 的块散列,以便char[n]依赖于char[n-1]
  3. 从硬编码值生成密钥。
  4. 使用 2 的结果生成 2 个表。 Table1 = Step2 用 Step3 编码。Table2 是 Table1 用 Step3 编码
  5. 根据某些位掩码,使用 Step4 中的表对 Step2 进行编码。

所以这整个事情是相当复杂的。此外,信息不断丢失,因此不可能以完全相反的操作顺序编写代码(或者我不知道如何)。

我将自己置于想要制定此保护计划的人的立场。从解码输出生成序列必须是可能的。要么这整个过程是可逆的,要么有一个功能可以充当后门之类的东西来立即逆转它,我强烈怀疑这一点。

关于我现在应该寻找的东西有什么想法吗?

0个回答
没有发现任何回复~