警告:C++ 菜鸟
我在 StackOverflow 上阅读了多篇关于字符串加密的文章。顺便说一句,他们没有回答我的疑问。我必须在我的代码中插入一两个硬编码字符串,但我希望在调试/逆向工程时难以以纯文本形式阅读。这还不是全部:我的字符串是 URL,所以一个简单的数据包分析器 (Wireshark) 可以读取它。我说过很难,因为我知道,当代码运行时,字符串在某个地方(在 RAM 中?)被解密为纯文本并且有人可以读取它。那么,假设不可能完全保护我的字符串,那么在 C++ 中加密/解密它的最佳方法是什么?我在想这样的事情:
//I've omitted all the #include and main stuff of course...
string encryptedUrl = "Ajdu67gGHhbh34590Hb6vfu6gu" //Encrypted url with some known algorithm
URLDownloadToFile(NULL, encryptedUrl.decrypt(), C:\temp.txt, 0, NULL);
数据包分析呢?我确定没有办法隐藏 URL,但也许我遗漏了什么?谢谢你,对不起我最糟糕的英语!
编辑1:我的应用程序做什么?
这是一个简单的登录脚本。我的应用程序从 URL 下载文本文件。此文件包含使用 fstream 库读取的加密字符串。然后该字符串被解密并用于登录另一个站点。它非常弱,因为没有数据库,没有盐,没有散列。我的成就是确保从二进制的静态分析中读取 url 和登录字符串都不是“容易”的,并且可能通过动态分析(调试、逆向工程等)尽可能难。