如何可能混淆一个局部变量
How is possible obfuscate a local var?
如果密码存储在源文件中,像strings或objdump这样的程序可以很容易地读取字符串,从而读取密码。我的问题是关于像这段代码那样存储数据:
to_send[77] = data[0];
to_send[27] = data[1];
to_send[4] = data[2];
to_send[777] = data[3];
其中data为字符串randomkey, to_send为要发送的字符串。在c++中,攻击者可以像字符串一样轻松地读取调试代码吗?还是更困难?
如果您想使逆向工程更加困难,您应该使用DES3加密,或者一些类似的方法。任何类型的硬编码数据都可以通过这种方式被"打乱"。当然,由于密钥也是硬编码的,所以它可以被破解。但是,没有万无一失的解决方案。您可以随意调整破解的复杂程度,因为一旦您在内存中获得了原始的解密数据。
您有几种方法可以做到这一点
1) Md5
密码不要保存在资源中,保存MD5(access_password)。
当用户输入密码测试,如果MD5(entered_password) == MD5(access_password)
pro:即使有人反转你的代码并找到你的MD5,也很难反转该值并找到密码(如果使用的密码不是字典中的单词)
2)非安全但简单的方法
char pass[] = {'p','a','s',s'};
这与您尝试的版本不一致。
它是快速和简单的,你的密码将不会被ResHacker找到,因为pass不会作为一个紧凑的内存块存储在你的exe
3)使用密码学保存密码
相关文章:
- 如何创建一个CMake变量,除非显式重写,否则使用默认值
- 静态常量与常量局部变量,哪一个性能更好
- 调用一个小函数两次(例如在if条件和主体中)比将结果存储在局部变量中更可取
- 如何在C++的另一个函数中使用局部变量
- 编译器是否可以从全局变量中读取两次,而不是存储一个局部变量
- 怎么可能有两个同名的变量——一个是全局变量,另一个是局部变量
- 如何制作一个集合,其中元素使用局部变量进行排序
- 如何从另一个类调用函数,其中该函数使用局部变量
- 在C++中返回一个局部变量
- 返回一个带有随机选项和局部变量的 char 函数
- 一个函数中的局部变量的变化会导致一个不相关的函数C++
- C++传递一个局部变量
- 如何可能混淆一个局部变量
- 我如何使一个函数指针引用一个局部变量
- 返回一个Ref到一个局部变量
- 局部变量在超出作用域时删除另一个变量的内存
- 我可以创建一个局部变量的boost::shared_ptr吗
- 如何在C++的另一个范围内使用局部变量
- 在c++中声明一个局部变量const的好处,如果它的值在编译时不知道
- 构造函数中的局部变量没有被遵循.这是gdb中的一个错误吗