对逆向工程隐藏字符数组
Hide char array from reverse engineer
寻找对逆向工程隐藏char*
的最简单方法。不一定是强加密,但很简单。它必须发生在标头中,这是我的代码:
#pragma once
const char * pw = "test";
#define PASS pw;
在源中使用PASS
的位置。
我已经尝试过反向字符串和十六进制到文本,反之亦然,但没有成功。有人请为此发布一些简单的解决方案。
编辑:这只是一个例子。用户不会输入任何内容,我只需要从调试器中隐藏一个字符指针。最好的方法是什么?
标准方法是在代码中仅存储字符串的哈希值(离线计算和代码外部计算),并在运行时对要与之比较的任何用户输入进行哈希处理,然后比较哈希而不是普通密码
您可以存储密码的 XOR 值,然后对用户输入进行 XOR 比较。有关代码,请参阅此答案。
然后问题就变成了有人可以运行调试器或反汇编器,以在检查密码时显示程序正在做什么。
相关文章:
- 指向指向字符数组的指针数组的指针
- 比较字符数组
- 如何使用Crypto++并为RSA返回可打印的字节/字符数组
- 使用无符号字符数组有效存储内存
- 按字符值访问int数组
- 错误:字符数组的初始值设定项太多
- 对字符数组中的元素执行逐位操作
- C++,在int数组中输入字符串或字符会输出0,而不是ascii或error
- C++ 无法在字符数组中使用 for 循环打印字母模式
- 如何在 C++ 中从文件中读取字符数组(带有一些空格)
- 移动二维数组中的字符
- C++ 传递二维字符数组
- 无法在 C++ 中输入字符数组
- C++ 带结构的数组字符
- 数组字符包含量超出预期
- 读取文件并添加到数组字符
- 如何在Qt中更改或替换数组字符
- 为什么编译器不在参数中传递数组字符 *arr[] 的大小?
- 井字棋数组字符错误
- 分割数组字符