我们在此处设置了每个进程都已签名的设置。我们有一个具有SYSTEM权限的进程,可以公开COM接口。我们不希望除了我们签名的进程使用COM接口。有没有办法实现这个目标?我们还在探索可以实现这一目标的其他Windows IPC机制。随意建议使其成为可能的其他IPC机制。 目前我们正在发送pid以及请求,但这很容易被欺骗。有什么建议吗?
答案 0 :(得分:0)
注册自定义代理/存根或inproc处理程序,并让代理或处理程序包含检查二进制文件签名的代码。
通过inproc COM对象进行所有访问,该对象执行验证并与服务器进行质询/响应过程。当然,如果使用调试器很方便,那也可能会被欺骗。
放弃它。即使是已签名的进程也可以被欺骗 - 使用带有挂起标志的CreateProcess,注入DLL,并使用JMP将入口点覆盖到DLL中。第一个调用是Sleep(1000),所以允许它运行500ms,然后用原始代码替换你的跳转。现在您在DLL中运行代码,但EXE尚未修改。
甚至没有使用调试API。哎呀,他们可以修补你的服务以取消支票!