Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/141.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何可能混淆本地变量?_C++_String_Obfuscation - Fatal编程技术网

C++ 如何可能混淆本地变量?

C++ 如何可能混淆本地变量?,c++,string,obfuscation,C++,String,Obfuscation,如果源文件中存储了密码,那么像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++中,攻击者可以轻松地读取像字符串那样的代码吗? 或者更难?如果您想让逆向工

如果源文件中存储了密码,那么像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 encription或类似的方法。任何类型的硬编码数据都可以通过这种方式进行加扰。当然,因为钥匙也是硬编码的,所以它可能会被破解。但是,没有防弹的解决方案。您只需按照破解复杂度的级别进行操作,因为一旦内存中有了原始的解密数据。

您几乎没有办法做到这一点

1 Md5

不要在资源中保存密码,请保存MD5access\u密码。 当用户输入密码测试时,如果MD5entered_password==MD5access_password

赞成:即使有人反转你的代码并找到你的MD5,如果使用的密码不是字典中的单词,也很难反转该值并输入密码

2非安全但简单的方法

字符传递[]={p',a',s',s'}

这与您尝试过的版本有点出入。 它的快速和简单,您的密码将不会被发现与ResHacker,因为通过将不会被存储为一个紧凑的内存块在您的exe


3使用密码学保存密码

您是否熟悉这条格言及其含义?是否可以对密码哈希进行硬编码?使用objdump等命令读取例如发送[x]?@user1056635调试器(如Olly、WinDbg和IDA Pro)用于此目的。