文章目录
- debug - 用Procmon记录目标程序启动后的操作
- 概述
- 笔记
- 备注
- END
debug - 用Procmon记录目标程序启动后的操作
概述
想看看 D:\Cadence\SPB_17.4\tools\bin\Capture.exe 开始页中的recent projects 从哪里读的.
想用Procmon记录Capture.exe启动后的动作, 再记录成文本日志, 从里面找找. 没找到啥有用东西, 量太大了.
但是使用Procmon记录一个程序启动后的操作是可以的, 对Procmon的使用(启动一个程序, 并记录程序动作, 保存日志)做个笔记.
笔记
Procmon是SysinternalsSuite中的一个程序.
启动Procmon64
设置要监测的程序全路径, e.g. D:\Cadence\SPB_17.4\tools\bin\Capture.exe
先勾上使能先进输出.
然后在点击过滤器.
这是我填好的监测程序的全路径. 对于还没启动的程序, 这时还没有啥PID之类的参数, 只能按照全路径来填写.
新增要监测的程序操作如下:
如果过滤器中有不想要的检测参数, 如下删除.
点击OK后, 就回到了主界面.
勾选工具条上的6个按钮如下:
按钮 - 开始捕获
按钮 - 注册表操作
按钮 - 文件操作
按钮 - 网络操作
按钮 - 进程线程操作
按钮 - 事件记录
此时, 主记录窗口是空的, 因为此时目标程序还没启动.
手工启动目标程序, 此时, 主记录窗口就有源源不断的捕获内容出现.
等程序启动完成.
此时, 可以用Procmon菜单上的Find功能去找自己感兴趣的日志内容, 但是太慢了.
保存成日志, 再用vscode打开, 自己慢慢查找.
保存成csv文件, 用普通的文本编辑器打开查找, 可能更灵活.
用vscode打开日志, 可以查看程序打开时, 读写了哪些文件, 读写了哪些注册表项, 挺有用的.
"12:32:30.3460467","Capture.exe","153080","FASTIO_READ","D:\Cadence\LicenseManager\license.dat","SUCCESS","Offset: 4,096, Length: 4,096"
"12:32:30.3461895","Capture.exe","153080","FASTIO_READ","D:\Cadence\LicenseManager\license.dat","SUCCESS","Offset: 8,192, Length: 4,096"
"12:32:30.3463433","Capture.exe","153080","FASTIO_READ","D:\Cadence\LicenseManager\license.dat","SUCCESS","Offset: 12,288, Length: 4,096"
...
"12:32:45.6931088","Capture.exe","153080","RegOpenKey","HKCU\Software\Classes\.OPJ","SUCCESS","Desired Access: Query Value"
"12:32:45.6931139","Capture.exe","153080","FASTIO_READ","D:\Cadence\SPB_17.4\tools\bin\Capture.exe","SUCCESS","Offset: 12,634,240, Length: 64"
缺点就是日志量太大了, 只能做参考.
如果可以从程序启动过程的操作日志中找到一些线索, 也是不错的.
备注
将日志保存为.PML后, 用Procmon打开后, 还是设置过滤器为目标程序后, 查找.
虽然速度慢一些, 但是可以精确排除一些不要的内容, 查找的更精确. 更有条理, 总体看, 效率更高.