【问题标题】:Anti debugging - Preventing memory dumps反调试 - 防止内存转储
【发布时间】:2011-09-09 06:17:52
【问题描述】:

我正在尝试在我的应用程序中实现一些基本的反调试功能。我想特别关注的一个领域是试图阻止人们轻易地从我的应用程序中获取可用的内存转储。我在以下位置阅读了这篇文章: http://www.codeproject.com/KB/security/AntiReverseEngineering.aspx

这给了我很多关于如何检测是否存在调试器的提示,以及一些关于如何防止内存转储的信息。但作者指出,使用这些技术时应该小心,例如删除内存中的可执行文件头。他提到有时操作系统或其他程序可能想要使用这些信息,但我看不出有什么目的。

关于如何阻止逆向工程师倾销我的程序,有没有人有其他提示?

我在 Windows 上。

亲切的问候,

菲利普·班尼法尔

【问题讨论】:

    标签: debugging memory dump


    【解决方案1】:

    没有合理的方法可以防止有人捕获您进程的内存转储。例如,我可以将内核调试器附加到系统,中断所有执行,然后从调试器中提取进程的转储。因此,我会专注于让分析变得更加困难。

    这里有一些想法:

    • 混淆和加密您的可执行代码。仅在内存中解密,并且不要将已解密的代码保留超过您需要的时间。

    • 不要将敏感信息存储在内存中超过必要的时间。使用 RtlZeroMemory 或类似的 API 清除不再使用的缓冲区。这也适用于堆栈(局部变量和参数)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-03
      • 1970-01-01
      • 1970-01-01
      • 2014-07-22
      • 2012-04-19
      • 1970-01-01
      • 2010-10-30
      • 1970-01-01
      相关资源
      最近更新 更多