- 进程监控: 监控进程创建、退出、线程操作
- 文件系统监控: 监控文件和目录的创建、删除、修改、访问
- 注册表监控: 监控Windows注册表的读写操作
- 网络监控: 监控网络连接的建立、断开和数据传输
- 按进程名过滤
- 按事件类型过滤
- 按操作类型过滤
- 按路径模式过滤
- 实时事件显示
- 详细的事件信息记录
- 支持事件导出到文件
- 可配置的事件数量限制
- Python 3.7+
- Windows 操作系统
- 管理员权限(推荐,用于完整的系统监控)
- 克隆或下载项目文件
- 安装依赖包:
pip install -r requirements.txt# 启动完整监控(所有类型)
python ProcDetective.py
# 监控指定进程
python ProcDetective.py -p notepad.exe
# 只监控文件系统活动
python ProcDetective.py -t file
# 启用详细监控模式
python ProcDetective.py --detailed| 参数 | 说明 |
|---|---|
-p, --process |
监控指定进程名 |
-t, --type |
监控指定类型的事件 (process/file/registry/network) |
-o, --output |
输出文件路径 |
--max-events |
最大事件数量 (默认: 10000) |
--watch-path |
监控指定路径(文件系统监控) |
--detailed |
启用详细监控模式 |
--no-process |
禁用进程监控 |
--no-file |
禁用文件系统监控 |
--no-registry |
禁用注册表监控 |
--no-network |
禁用网络监控 |
python ProcDetective.py -p chrome.exepython ProcDetective.py -t file -o filesystem_log.txtpython ProcDetective.py -t file --watch-path "C:\Users\YourName\Documents"python ProcDetective.py --no-process --no-file --no-registrypython ProcDetective.py -t registry --detailed监控输出包含以下信息:
- 时间戳: 事件发生的精确时间
- 进程名: 执行操作的进程名称
- 进程ID: 进程的PID
- 操作类型: 具体的操作类型(如FileRead、ProcessCreate等)
- 路径: 相关的文件路径、注册表键或网络地址
- 结果: 操作结果(SUCCESS/FAILED等)
示例输出:
ProcDetective.py: 主程序和核心框架process_monitor.py: 进程监控实现filesystem_monitor.py: 文件系统监控实现registry_monitor.py: 注册表监控实现network_monitor.py: 网络监控实现
- BaseMonitor: 监控器基类,定义统一接口
- EventFilter: 事件过滤器,支持多种过滤条件
- EventFormatter: 事件格式化器,统一输出格式
- MonitorEvent: 事件数据结构,包含完整的事件信息
- 默认限制最大事件数量为10,000个,避免内存溢出
- 文件系统监控排除临时文件和系统文件
- 网络监控设置流量阈值,避免过多的低级别事件
- 注册表监控限制扫描深度,提高性能
- 权限要求: 某些系统级监控需要管理员权限
- 平台限制: 注册表监控仅在Windows系统上可用
- 性能影响: 大量的文件系统活动可能影响系统性能
- 依赖库: 需要安装psutil和watchdog库
Q: 提示"psutil库不可用"
A: 运行 pip install psutil 安装依赖
Q: 文件系统监控不工作
A: 确保安装了watchdog库:pip install watchdog
Q: 注册表监控在非Windows系统上报错 A: 注册表监控仅支持Windows系统,在其他系统上会自动禁用
Q: 监控输出过多
A: 使用过滤参数限制监控范围,如 -p 进程名 或 -t 类型
- 继承
BaseMonitor类 - 实现
_monitor_loop方法 - 使用
_emit_event发送事件 - 在主程序中注册监控器
from procmon import EventFilter, EventType
# 创建自定义过滤器
event_filter = EventFilter()
event_filter.add_process_filter("myapp.exe")
event_filter.add_event_type_filter(EventType.FILE_SYSTEM)本项目采用MIT许可证,详见LICENSE文件。
欢迎提交Issue和Pull Request来改进这个项目。
- 初始版本发布
- 支持进程、文件系统、注册表、网络监控
- 实现事件过滤和格式化
- 提供命令行界面