在没有符号的混淆汇编代码中找到 RC4 加密函数

逆向工程 部件 ollydbg 混淆 加密 登录
2021-06-27 01:26:36

RC4 加密非常基础,其伪随机生成算法在Wikipedia上给出

在寻找像 MD5 或 SHAx 这样的散列算法时,在代码中查找散列常量非常简单,例如,大多数情况下查找 MD5 代码查找 0x01234567 的字节序列就足够了,您可能会遇到该函数迭代文本部分。

现在该示例给出了 MD5 函数。但是如果我想找到对称 RC4 加密的实现呢?会不会有任何明显的操作码序列会重复?

我问这个问题是因为我正在研究一些没有符号的大量反调试混淆代码。我知道很有可能(比如 90% 的把握)它使用的是 RC4 加密。现在我希望能够找到 RC4 函数,就像我能够找到 MD5 散列函数一样。

以防万一我错了,并且它没有在主可执行文件本身内进行硬编码(因为 md5 是,所以我可以假设它也应该是),我已经尝试在CRYPTSP!CryptEncrypt设置断点但没有成功,是是否有任何替代的 Api 函数可以使用 RC4 加密?

所以总结一下我的问题:

  1. 在 RC4 加密的程序集中是否有任何静态操作码用法或数字?
  2. 除了CRYPTSP!CryptEncrypt之外,是否还有其他使用 RC4 加密进行加密的 WinAPI 调用
  3. 任何其他寻找RC4加密算法的方法你能帮我想想都是有福的。
1个回答
  1. 在 RC4 加密的程序集中是否有任何静态操作码用法或数字?
  • 操作码:在反汇编中搜索xor <x>, <y>where <x>!= <y>
  • 号码:搜索 0x100

显然,这两种搜索都会产生许多误报,因此您必须手动查看每个匹配项以查看它是否属于 RC4 函数的一部分。

  1. 除了CRYPTSP!CryptEncrypt之外,是否还有其他使用 RC4 加密进行加密的 WinAPI 调用

每次我看到使用 RC4 的软件时,RC4 代码总是内联编写的,而不是从动态库中导入的。

  1. 任何其他寻找RC4加密算法的方法你能帮我想想都是有福的。

你可以试试Aligot