【问题标题】:Sandboxing a program using WinAPI hooks使用 WinAPI 挂钩对程序进行沙箱化
【发布时间】:2011-01-02 21:40:50
【问题描述】:

我想对原生代码进行沙箱处理,并使用 WinAPI 和系统函数的挂钩来阻止或允许该程序执行一些操作,例如读取/写入文件、修改 Windows 注册表、使用 Internet 连接。这是一种好的和安全的方式吗?该程序绕过这样的安全层有多难?

【问题讨论】:

  • @Hans 存在一个有限的(虽然很长)API 函数列表,因此如果有足够的灵感,它们可以被钩住。是的,有一些方法可以绕过这些钩子,但是对普通应用程序进行沙箱化是可能的。市场上有一些应用程序/SDK,可让您对任何将其转换为沙盒的程序执行此操作。 BoxedApp 是我想到的一个名称,但还有更多可用的名称。

标签: security winapi hook sandbox native-code


【解决方案1】:

我已经检查了您的问题,它们都与从一开始就似乎无效的任务有关,原因如下:您正在尝试保护一个应用程序并且您准备为此重新发明轮子。有几种方法(和许多现成的解决方案)可以解决您的问题。因此,您需要查看现有解决方案,而不是编码。

方法是:

  1. 使用 Windows 权限限制 访问您的应用程序 资源
  2. 采取 VMWare 或 Parallels 或 其他虚拟化平台和 在那里运行你的程序
  3. 采取沙盒SDK(如 BoxedApp) 并“包装”你的 申请。

【讨论】:

    【解决方案2】:

    +1 给 Hans,但是如果你真的喜欢它,那么我可以推荐 Easyhook。我个人在 Win XP、Vista 和 7 中成功使用过它。我不知道它的可绕过性,但确实存在其他替代方案 - madSHI 挂钩,如果你想走官方的道路,请尝试 Microsoft 的 Detours。

    【讨论】:

      【解决方案3】:

      防病毒应用试图解决几乎相同的问题,但没有取得多大成功。
      1。您永远不会知道如何使用最常见的操作。
      2。有系统调用,所以程序根本不用winapi。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-09
        • 1970-01-01
        • 2014-04-20
        • 1970-01-01
        相关资源
        最近更新 更多