假设我知道某个 Windows 服务公开了一个本地 RPC 接口。我想创建一个调用这些过程的客户端程序;但是,我没有服务应用程序的源代码。
我知道我可以使用 Process Explorer 在 下获取服务器的 ALPC 句柄的名称\RPC Control,我猜这个句柄可用于创建一个绑定字符串,这将允许我的客户端连接到服务器。这应该有望解决连接部分。
但是,我应该如何继续为我的客户端定义实际的 RPC 接口以在服务器上执行代码?我首先需要识别远程过程和它们采用的参数,然后编写一个合适的客户端。我的猜测是我应该编写一个以某种方式适合服务的 idl 文件,然后使用具有适当配置的 midl 编译器编译它。这是最好的策略还是有更多经验的人会提出其他建议?枚举和逆向工程 RPC 接口的最有效技术或工具是什么?有必要倒车吗?有没有人有一些他们可以分享这方面的经验?
