我将如何通过反编译程序来查找加密密钥或密码?

逆向工程 加密 解密
2021-06-12 01:05:45

我开始好奇 Trend Micro 如何与其服务器通信,因此我收集了一些使用 Fiddler2 来回发送的独特和标准 HTTP 标头。我在 C++ 中创建了一个 winsock 程序,它发送以下内容:

    GET /T/128/y2k-L48MLwdH0BuLxZvYxGjK5An-UV6lY772ppsBGZ3ojsPfa37NjMDonK98FPZesq5hXXOsV082oIdmeTaWURWiB4qqibZGVy8ZzCKKDLpZ9ekYPU7X4UgyBnKWFENX HTTP/1.1
    Host: titanium80-en.url.trendmicro.com
    User-Agent: TMUFE
    Accept: /
    X-TM-UF-INFO: 76/Uj3tcG7ArMH0ktdN_RiX6fLyEhB2sQWJhjJRJufMEMElv7j6EizpjjDSQd_cUW5fMormb8Q8FN4=
    Connection: Keep-Alive

显然我不知道那些加密的值是什么,因为我只是从 Fiddler 复制并粘贴它们,看看服务器会回复什么加密字符串,如下所示:

XnbdFqiy5YGldi-HnN5y7pH0kZ03J_UsH-bZ5JUi0aNEj-aa1P8cQlU9I2b77Jf-Rgd1fepEqlTp
H_LlvWDqe0YjWKvw01M1zkXx_iAbFIm9Ld_QcUTw9cQsNIok7-cOK8wKVyDR63SVwBjebXthWKh0kBW3
wWn3Y0D7UoGDYSeSJfLoqSroByZligLXqEZ5

我需要知道程序中的哪个位置,一旦我使用 Cheat Engine 之类的东西反编译它并获得十六进制,我就可以找到正在使用的加密或编码和/或密钥。

更新:在使用编码检测器和来自不同人的建议后,我尝试将其解码为 base64,但我不断收到如下符号和乱码: ÖÁ¾ä/Ƽ0//GÐÅØÄ. 任何有关这方面的知识将不胜感激。:)

1个回答

使用 IDA Pro,查找字符串TMUFE和/或X-TM-UF-INFO并找到它们的交叉引用。引用这些字符串的代码是发出这些 HTTP 请求和处理(解密)服务器响应的代码的一部分。因此,您可以分析该代码以确定您的程序如何执行解密。

如果您需要进一步的帮助,您可能需要发布指向目标程序的链接(假设它是免费软件/共享软件/试用软件,因此可以共享)。