如何使用Rohitab API Monitor监控Windows服务启动过程
Rohitab API Monitor 监控Windows服务启动过程的实操方案
API Monitor默认仅支持附加运行中进程,但可以通过以下两种通用方案实现对服务启动全流程的API捕获:
方案1:注册表映像劫持(最稳定,可100%捕获启动阶段调用)
通过Windows内置的映像劫持机制,让服务进程启动时自动挂载API Monitor作为调试器,操作步骤如下:
- 以管理员权限打开注册表编辑器,定位到路径:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options - 在上述路径下新建项,名称为目标服务对应的可执行文件名,例如要监控
nginx服务就新建名为nginx.exe的项 - 进入新建的项,新建一个字符串值(REG_SZ类型),名称为
Debugger,值设置为Rohitab API Monitor主程序的完整绝对路径,路径需要用英文双引号包裹,示例:"C:\Program Files\API Monitor v2\apimonitor-x64.exe" - 提前打开API Monitor,配置好你需要监控的API过滤规则,在设置中开启启动后自动附加到子进程选项
- 重启目标Windows服务,系统启动服务进程时会自动拉起API Monitor,完整捕获服务从初始化、加载依赖到启动完成的所有API调用
- 监控结束后务必删除刚才新建的注册表项,避免后续每次启动服务都会自动拉起API Monitor
方案2:手动快速附加(低侵入,无需修改系统配置)
适合启动耗时较长的第三方服务,操作步骤如下:
- 以管理员权限打开命令提示符,先停止正在运行的目标服务:
sc stop 你的服务名称 - 打开API Monitor,提前加载好需要的API监控规则,停留在进程选择界面
- 在命令提示符中执行服务启动命令的同时,快速在API Monitor的进程列表中选中刚生成的服务进程完成附加:
sc start 你的服务名称 - 只要在服务初始化完成前完成附加,即可捕获到启动阶段的大部分API调用
注意事项
- 所有操作必须以管理员权限执行,否则无法访问系统服务进程、修改系统配置
- 64位系统需要匹配API Monitor和目标服务的架构:监控64位服务用64位API Monitor,监控32位服务用32位API Monitor,否则会附加失败
- 针对系统核心服务的监控操作,建议先在测试环境验证,避免操作失误导致服务启动异常
内容的提问来源于stack exchange,提问作者gabriel
相关产品推荐
相关产品推荐

