gpt4 book ai didi

java - 我怎样才能打败类似 RC4 的混淆?

转载 作者:行者123 更新时间:2023-11-30 09:52:08 24 4
gpt4 key购买 nike

我正在尝试读取由最初用 Visual Basic 6(后来用 Java 重写)编写的程序生成的数据文件,以便我可以使用自己的工具处理它们。

相关程序是美国政府创建的公共(public)领域软件;没有许可协议(protocol)禁止这样做。我无法提及该程序的名称或指向其网站的链接,因为程序员可能会在明年的版本中更改混淆,我将不得不重复我的逆向工程工作。

底层数据文件格式是基于文本的,混淆是某种带有硬编码 key 的流密码。我可以对数据文件进行异或运算以获取一些数据(用重复的 ASCII 字符填充其中一个字符串字段),但我想避免将整个 key 流嵌入到我的程序中。

搜索 .exe 文件显示调用了一个名为 RC4ini 的子例程和一个我认为是关键的字符串(它没有出现在用户界面的任何地方)。我在 Planet Source Code 上找到了这个加密库的源代码。 ,对 RC4 的工作实现进行了正确的更改(在 JavaScript 中,因为这是我主要工作的编程语言),并尝试使用它。

我试图在文件中的每个偏移处搜索加密数据,但我没有成功解密。为什么会这样?

最佳答案

如果他们使用 RC4,您有几个选择。

一种选择是查明他们何时调用 RC4 并转储 key 或明文消息。使用像 Windbg 或 ollydbg 这样的调试器很容易做到这一点。从根本上说,他们违反了加密法,所有 DRM 都会因为这个属性而失败。

另一种攻击是,如果相同的 key 用于 2 条消息,如果您知道一条消息的纯文本,那么您可以将其与其对应的密文进行异或以揭示 PRNG 流。然后可以将此 PRNG 流与未知消息的密文进行异或运算,以获得其对应的明文。当然,如果每条消息的 key 都不同(例如使用 IV),那么这种攻击就不会起作用。

关于java - 我怎样才能打败类似 RC4 的混淆?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4334944/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com