如何在程序存储器中隐藏纯文本?

时间:2015-09-02 13:28:59

标签: c++ encoding data-protection

我正在编写将编码字符串加载到内存中并使用特殊算法对其进行解码的程序。

计划工作的顺序:

  1. 从编码文件(base64字符串)
  2. 加载数据
  3. base64字符串解码为编码数据字符串(Rijndael 256
  4. 将编码数据字符串(Rijndael256)解码为纯文本代码
  5. 在数据结构中运行代码并存储状态
  6. 从内存中删除纯文本
  7. ...
  8. 问题出在sequence #3如果用户创建程序存储器转储,他可以将代码作为纯文本获取,必须是安全的。 我的问题是 - 有什么方法可以保护我在内存中的纯文本字符串吗?

    程序以C++编写。

2 个答案:

答案 0 :(得分:1)

据推测,在内存中需要纯文本,至少是短暂的,以便正确执行。如果在那时发生了内存转储,是的,他们可以访问它,不,你可以做很多事情。尽可能短的时间保持纯文本也有助于确保归零和#34;你完成它之后的记忆。

答案 1 :(得分:1)

不,没有任何方法可以保护它 - 大概甚至OllyDbg足以获得解码值(只需要放置一个断点,之后内存归零并不重要)或移动或任何东西)。

您应该重新考虑您的安全模型。