【问题标题】:Hide char array from reverse engineer对逆向工程师隐藏字符数组
【发布时间】:2013-11-17 20:32:35
【问题描述】:

寻找向逆向工程师隐藏char* 的最简单方法。不必是强加密,但很简单。它必须发生在标题中,这是我的代码:

#pragma once
const char * pw = "test";
#define PASS pw;

PASS 在源中使用。

我已经尝试过将字符串和十六进制反转为文本,反之亦然,但没有成功。有人请为此发布一些简单的解决方案。

编辑:这只是一个例子。用户不会输入任何东西,我只需要从调试器中隐藏一个 char 指针。最好的方法是什么?

【问题讨论】:

  • 有很多方法可以做到这一点,答案太多,无法找到一种正确的方法。一种简单的方法是设置pw = "uftu";,当用户提供一些东西时,只需给他们的每个字符加1。不过,@MikeMB 关于哈希的答案是解决问题的更好方法。
  • 编辑了帖子 - 没有任何类型的用户输入。 :) 这必须对调试器隐藏。

标签: c++ string encryption character-encoding hide


【解决方案1】:

标准方法是在代码中仅存储字符串的哈希值(离线计算并在代码之外),并在运行时对您想要与之比较的任何用户输入进行哈希处理,然后比较哈希值而不是普通密码

【讨论】:

    【解决方案2】:

    您可以存储密码的异或值,然后异或用户输入进行比较。代码参考this answer

    那么问题就变成了有人可以运行调试器或反汇编器来揭示你的程序在检查密码时正在做什么。

    【讨论】:

      猜你喜欢
      • 2011-07-24
      • 2023-03-24
      • 1970-01-01
      • 2011-12-21
      • 2012-06-24
      • 1970-01-01
      • 2011-09-30
      • 2020-03-05
      • 1970-01-01
      相关资源
      最近更新 更多