【问题标题】:Encrypt plain text inside EXE / RAM :: HxD editor加密 EXE / RAM 中的纯文本 :: HxD 编辑器
【发布时间】:2008-09-30 14:55:37
【问题描述】:

HxD(十六进制编辑器)允许搜索/查看/编辑 RAM。

如何保护 EXE 免受此类编辑器的攻击?数据在 INI/registry/DB 中加密, 但在 RAM 中解码。

解决办法是什么?在运行时尽快解码、使用和重新编码 RAM 中的数据?

【问题讨论】:

  • 为什么?你想隐藏什么?大部分文本最终都会通过 GUI 显示给用户,那有什么意义呢?
  • 假设我从一个 INI 文件中读取了一些 ENCODED SQL 命令。我对它们进行解码并在运行时使用它们。有人可能会编辑 RAM 并访问它,不是吗?
  • 如果有人可以修改你的应用程序的内存,那就无所谓了。实际上,如果她/他能做到这一点,那么就没有保护措施了。更不用说,修改INI文件中的SQL命令要容易得多。

标签: security hex-editors


【解决方案1】:

你正试图用茶匙阻止大海。

这种“内存保护”是好的(邪恶的?)恶意软件所做的。我已经看到了如何打破这种“保护”的现场演示。它最终是无用的 - 在某些时候,您的明文 必须 可供计算机执行。一个称职的程序员/逆向工程师可以很容易地找到明文何时可用,然后暂停程序并在空闲时检查进程内存。

这与 RIAA 在 DRM 方面面临的问题相同:要求有缺陷。您想对用户隐藏您的程序,但为了让他们使用它,他们必须在某些时候拥有明文。

您唯一可能的救赎TPM,但它们在消费市场中非常罕见,您的用户群将降至个位数。

【讨论】:

    【解决方案2】:

    您可以使用 Themida 之类的 exe 保护程序(它甚至会使查看内存变得困难),但请记住,用户会因此而讨厌您。此外,请记住,Themida 与所有其他保护程序一样,经常被破解,尽管此类软件的供应商声称如此。

    简短:永远没有防止逆向工程的好方法。

    【讨论】:

      【解决方案3】:

      不太确定他们是否在这个级别这样做,但KeePass,一个开源密码管理器,声称会尽一切可能隐藏密码以防止调查。看看他们如何做到这一点可能会很有趣...... :-)

      【讨论】:

        猜你喜欢
        • 2012-08-02
        • 2011-01-06
        • 2018-07-06
        • 1970-01-01
        • 1970-01-01
        • 2019-01-29
        • 2015-06-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多