Ang*_*elo 1 c++ string encryption url
警告:C++ noob
我在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);
Run Code Online (Sandbox Code Playgroud)
包分析怎么样?我确定没有办法隐藏URL,但也许我错过了什么?谢谢你,对不起我最糟糕的英语!
编辑1:我的应用程序做了什么?
这是一个简单的登录脚本.我的应用程序从URL下载文本文件.此文件包含使用fstream库读取的加密字符串.然后解密该字符串并用于在另一个站点上登录.它非常弱,因为没有数据库,没有盐,没有散列.我的成就是确保url和登录字符串都不容易从二进制文件的静态分析中读取,并且可能通过动态分析(调试,逆向工程等)尽可能地难以读取.
如果您想阻止数据包检查员,最低要求是使用https,并在您的应用程序中加入硬编码服务器证书.
没有用于加密应用内内容的灵丹妙药.无论你做什么,具有合适技能的坚定黑客都会获得简单的网址.你可以期待的最好的事情是让大多数人放弃的困难.实现此目的的方法是实现多种不同的混淆和绊线技术.包括但不仅限于:
这只是冰山一角,只会让新手脱离气味.它不会阻止甚至显着减慢一个熟练的攻击者,他只会使用隐形调试器拦截对SSL库的调用.因此,你必须问自己: