0.windbg-!logexts(自带的监控API)
来源:互联网 发布:肛门调教知乎 编辑:程序博客网 时间:2024/05/16 09:40
Logexts.dll
windbgth自带了跟进API的功能,这样我们可以方便的跟踪整个API的调用具体的示意图如下:
指令简介
!logexts.logi将Logger注入目标程序,初始化监控,但是并不开启它。
!logexts.loge
开启监控,如果之前没有调用logexts.logi,这个扩展命令会先初始化监控,然后启动。
!logexts.logd
停止监控。这个命令会摘掉所有的Hook,从而让程序自由运行。不过COM的Hook并不会被摘除。
!logexts.logo
显示或者修改输出选项,这里有三种输出方式:1.在调试器中显示,2.输出到一个文本文件,3.输出到lgv文件。其中lgv文件会包含更多的信息,我们可以使用LogViewer进行查看。
!logexts.logc
显示或者控制监控的API分类。
!logexts.logb
显示或者刷新输出缓存。由于如果在监控过程中发生异常,那么扩展可能无法将记录的日志写入文件中,这个时候我们就需要这个命令,手动的将缓存中的数据写入文件。
!logexts.logm
显示和创建模块的包含/排除列表。这可以帮助我们指定记录那些特定模块中的API调用。
官方介绍
http://msdn.microsoft.com/en-us/library/windows/hardware/ff560170(v=vs.85).aspx
示例
!logexts.loge D:设置log的保持路径,并且开启监控
!logexts.logc d *
先关闭所有API分类的监控
!logexts.logc
查看API分类id
!logexts.logc e 1
设置想监控API分类
!logexts.logo e *
开启了所有输出方式,注意:如果想要被监控的程序响应的更快,可以去掉Debugger的输出,因为显示花费的时间比较的多。
Logextse有高度可配置性。如果你想监控他描述以外的API,那么你可以自己写这个API的“头文件”。这里用引号是因为,它并不是真正的头文件,只不过他的语法和C的头文件非常的相似。我们可以看一个例子:
创建%windbg_dir%winextmanifestContext.h
并且写入这些内容
category ActivationContext:module KERNEL32.DLL: FailOnFalse ActivateActCtx(HANDLE hActCtx, [out] PULONG_PTR lpCookie);FailOnFalse DeactivateActCtx(DWORD dwFlags, ULONG_PTR upCookie);在%windbg_dir%winextmanifestmain.h文件的最后加入一行 #include “Context.h”
保存后,重启调试程序,输入!logexts.logc,可以看了多出了ActivationContext这一项。现在就可以选择这一项分类来监控ActivateActCtx和DeactivateActCtx了。
最后自己随便写了个简单的script调用:
.printf /D "<link cmd=\"!logexts.loge c:\\cmdtree\\log\\ \">Enables logging</link>\n".printf /D "<link cmd=\"!logexts.logo e *\">sets Logger output</link>\n".printf /D "<link cmd=\"!logexts.logc e *\">Displays available API categories</link>\n".printf /D "<link cmd=\"!logexts.logb p;!logexts.logb f\">Displays current output buf</link>\n".printf /D "<link cmd=\"!logexts.logd\">Disables logging</link>\n".printf /D "<link cmd=\"!logexts.loge c:\\cmdtree\\log\\;!logexts.logc e *;!logexts.logo e *;!logexts.logb p;!logexts.logb f\">trace api calls</link>\n"
效果如下:
- 0.windbg-!logexts(自带的监控API)
- 通过Java SE 7自带的监控服务(WatchService API)
- JAVA自带监控工具的介绍
- jvm 自带的监控工具
- jdk自带的jvm监控工具
- JVM自带的监控工具
- zabbix自带的模板监控mysql
- 通过Java SE 7自带的监控服务(WatchService API)实现类似.NET FileWatcher的功能
- hadoop自带的API文件
- Android自带的Json API
- JDK自带监控工具
- zabbix自带监控mysql
- 【linux性能监控】-LR自带监控
- 【win7自带的监控功能教你使用】
- JDK自带的监控分析工具JConsole
- 使用java自带的控制台监控JVM内存
- JVM基础 之JAVA自带监控工具的介绍
- 配置MediaProxy自带的Web监控界面
- Picking: Screen to Projection Window Transform
- HQL Query查询
- android布局详解
- Linux(4)常用命令
- poj1061青蛙的约会
- 0.windbg-!logexts(自带的监控API)
- 内存中的堆与栈
- Linux校园社区上线
- ArryList的使用方法
- 两种图像缩放算法的对比与实现
- 搜索引擎优化(SEO)的最高境界
- 目标1——创建主题框架
- linux4
- Hadoop Eclipse下运行WordCount