在C+;中加密硬编码字符串的最佳方法是什么+;? 警告:C++ NOOB
我读过多篇关于StackOverflow的关于字符串加密的文章。顺便说一下,他们没有回答我的疑问。 我必须在我的代码中插入一个或两个硬编码字符串,但我希望在调试/逆向工程时使纯文本阅读变得困难。这还不是全部:我的字符串是URL,所以一个简单的数据包分析器(Wireshark)可以读取它。 我说困难是因为我知道,当代码运行时,字符串在某个地方(在RAM中?)被解密为纯文本,有人可以读取它。因此,假设不可能完全保护我的字符串,在C++中加密/解密它的最佳方法是什么? 我在想这样的事情:在C+;中加密硬编码字符串的最佳方法是什么+;? 警告:C++ NOOB ,c++,string,url,encryption,C++,String,Url,Encryption,我读过多篇关于StackOverflow的关于字符串加密的文章。顺便说一下,他们没有回答我的疑问。 我必须在我的代码中插入一个或两个硬编码字符串,但我希望在调试/逆向工程时使纯文本阅读变得困难。这还不是全部:我的字符串是URL,所以一个简单的数据包分析器(Wireshark)可以读取它。 我说困难是因为我知道,当代码运行时,字符串在某个地方(在RAM中?)被解密为纯文本,有人可以读取它。因此,假设不可能完全保护我的字符串,在C++中加密/解密它的最佳方法是什么? 我在想这样的事情: //I've
//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和登录字符串都不“容易”从二进制文件的静态分析中读取,并且可能通过动态分析(调试、反向工程等)尽可能地难以读取。如果您想阻止数据包检查器,最基本的要求是使用https,并在应用程序中烘焙硬编码的服务器证书 加密应用程序内内容没有灵丹妙药。无论你做什么,一个具有正确技能的坚定的黑客都会得到一个简单的url。你能指望的最好办法就是让它变得足够困难,以至于大多数人都会放弃。实现这一点的方法是实现多种不同的模糊处理和tripwire技术。包括但不限于:
- 应该使用不同的技术在不同的调用站点进行检测,而不是调用单个“DetectDebug”函数或测试全局bool,这两种方法都会产生单个攻击点
如果你想阻止数据包检查,最起码的要求是使用https,并在你的应用程序中加入硬编码的服务器证书 加密应用程序内内容没有灵丹妙药。无论你做什么,一个具有正确技能的坚定的黑客都会得到一个简单的url。你能指望的最好办法就是让它变得足够困难,以至于大多数人都会放弃。实现这一点的方法是实现多种不同的模糊处理和tripwire技术。包括但不限于:
- 应该使用不同的技术在不同的调用站点进行检测,而不是调用单个“DetectDebug”函数或测试全局bool,这两种方法都会产生单个攻击点