【问题标题】:Com client authenticationCom客户端认证
【发布时间】:2012-02-09 15:54:04
【问题描述】:
我们在这里有一个设置,每个进程都被签名。我们有一个公开 COM 接口的具有 SYSTEM 权限的进程。我们不希望除我们签名的进程之外的进程使用 COM 接口。有没有办法做到这一点?我们还在探索其他可以实现这一点的 Windows IPC 机制。随意建议其他使这成为可能的 IPC 机制。
目前我们正在发送 pid 以及请求,但这很容易被欺骗。有什么建议吗?
【问题讨论】:
标签:
windows
authentication
com
client
ipc
【解决方案1】:
注册一个自定义代理/存根或 inproc 处理程序,并让代理或处理程序合并检查二进制文件签名的代码。
通过 inproc COM 对象进行所有访问,该对象执行验证并与服务器进行质询/响应过程。当然,如果调试器很方便,那也可以被欺骗。
放弃吧。 甚至可以欺骗已签名的进程 - 使用带有挂起标志的 CreateProcess,注入 DLL,并使用 JMP 将入口点覆盖到 DLL 中。第一个调用是 Sleep(1000),所以让它运行 500 毫秒,然后用原始代码替换你的跳转。现在您在 DLL 中运行代码,但 EXE 尚未修改。
即使不使用调试 API。哎呀,他们可以修补您的服务以删除检查!