Winapi 如何监视对应用程序/服务的Windows API调用?

Winapi 如何监视对应用程序/服务的Windows API调用?,winapi,monitoring,Winapi,Monitoring,我的公司正在考虑实施一个新的VPN解决方案,但要求通过我们的软件以编程方式维护连接。VPN解决方案由一个似乎管理物理连接的后台服务和一个启动连接/断开连接请求的命令行/GUI实用程序组成。我正在寻找一种方法来“侦察”前端utilty和后端服务之间的API调用,以便我们的软件可以对服务进行相同的调用。有什么推荐的软件解决方案或方法可以做到这一点吗?通常,前端应用程序和后端服务之间的通信是通过某种形式的IPC(套接字、命名管道等)或通过服务控制管理器发送的自定义消息来完成的。您可能需要找出此解决方案

我的公司正在考虑实施一个新的VPN解决方案,但要求通过我们的软件以编程方式维护连接。VPN解决方案由一个似乎管理物理连接的后台服务和一个启动连接/断开连接请求的命令行/GUI实用程序组成。我正在寻找一种方法来“侦察”前端utilty和后端服务之间的API调用,以便我们的软件可以对服务进行相同的调用。有什么推荐的软件解决方案或方法可以做到这一点吗?

通常,前端应用程序和后端服务之间的通信是通过某种形式的IPC(套接字、命名管道等)或通过服务控制管理器发送的自定义消息来完成的。您可能需要找出此解决方案使用的方法,并从那里开始工作-尽管如果是通过套接字进行加密通信,这可能会很困难。

正如Harper Shelby所说,这可能非常困难,但您可以从开始,它可以告诉您某些进程何时创建或写入文件,它可以对注册表的写入和读取执行相同的操作,并监视网络流量。这可以为您获取一些数据,但即使有这些数据,也可能很难以允许您进行相同调用的方式进行解释。

我不明白您为什么要替换该实用程序,而不是简单地从应用程序运行该实用程序

无论如何,您可以运行“dumpbin/imports whatevertheutilitynameis.exe”来查看实用程序链接到的API函数名的静态列表;这不会显示调用它们的顺序,也不会显示参数值


然后,您可以使用系统调试器(例如Winice或其他更现代的类似工具)在这些API上设置断点,这样当实用程序调用这些API时,您就可以进入调试器(然后可以检查参数值)。

您可以使用诸如查看Windows消息之类的工具收集一些信息。调试/跟踪工具(、等)可能允许您查看正在进行的API调用。这些工具可以在一定程度上向您显示系统信息的使用细节


尽管我在大多数情况下都不建议这样做,但是否可以联系解决方案提供商并获取文档?其中一个原因是脆弱性——如果供应商不希望用户使用界面的这一方面,他们更有可能在不事先通知的情况下对其进行更改。

同意;有很多原因不需要对协议进行反向工程,自己实现协议的一部分。。。