2012-02-09 158 views
0

我们在这里设置了每个进程签名。我们有一个具有SYSTEM权限的进程,用于公开COM接口。我们不希望除我们签署的流程外使用COM接口。有什么办法可以做到这一点?我们也在探索其他可能允许这样做的Windows IPC机制。随意建议使其成为可能的其他IPC机制。 目前我们正在发送pid以及请求,但这很容易被欺骗。有什么建议么?Com客户端认证

回答

0
  1. 注册一个自定义的代理/存根或进程内处理程序,并有代理或合并处理的代码,会检查二进制签名。

  2. 通过一个inproc COM对象进行所有访问,该对象执行验证并通过服务器进行质询/响应过程。当然,如果它们在调试器上很方便,也可以被欺骗。

  3. 只要放弃就可以了。即使是已签名的进程也可能被欺骗 - 使用具有挂起标志的CreateProcess,注入DLL并使用JMP将入口点覆盖到DLL中。第一个电话是一个睡眠(1000),所以允许它运行500毫秒,然后用原始代码替换你的跳转。现在,您正在DLL中运行代码,但EXE尚未修改。

即使没有使用调试API。哎呀,他们可以修补您的服务以取消支票!