摘要: 1.使用DebugView查看输出信息对内核调试是做系统底层驱动开发的必修课,当然也是有兴趣才可能进行深入的挖掘。进行驱动调试可以有很多工具可以用,比如DebugView可以查看一些DbgPrint的输出的输出信息(当然它的功能还有其他)如下图(不好意思,图还在审核中): 点击菜单“Capture”,在弹出的菜单中勾选想要监控的输出信息,就可以在动态调试时看到你在程序中使用DbgPrint输出的信息!下面我们举一个驱动的小例子,来看下效果(相关资料可以参考驱动开发的教程《寒江独钓》)。实例1:首先要安装相应的工具,我们这里用到了,VMWare,WDK,DebugView,任意文本编辑... 阅读全文
posted @ 2013-12-24 12:33 codergeek 阅读(502) 评论(0) 推荐(0) 编辑
摘要: 编写驱动FirstDriver.c#includevoid MyDrvierUnload(){//}NTSTATUS DriverEntry(PDRIVER_OBJECT pDriverObject,PUNICODE_STRING RegistryPath){ DbgPrint("My First Driver!"); pDriverObject->DriverUnload = MyDrvierUnload; return STATUS_SUCCESS; }makefile在ddk中自带的驱动程序中找到一个makefile,windows的makefile中的内容都是 阅读全文
posted @ 2013-12-24 12:25 codergeek 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 函数和数据被编译进一个二进制文件(通常扩展名为.LIB)。静态库:在使用静态库的情况下,在编译链接可执行文件时,链接器从库中复制这些函数和数据并把它们和应用程序的其它模块组合起来创建最终的可执行文件(.EXE文件)。在多个同样的程序执行时,系统保留了许多重复的代码副本,造成内存资源浪费。动态库:使用动态库时,有一个引入库lib和一个DLL。引入库lib包含被DLL导出的函数和变量的符号名,DLL包含实际的函数和数据。在编译链接可执行文件时,只需要链接引入库,DLL中的函数代码和数据并不复制到可执行文件中,在运行的时候,再去加载DLL,访问DLL中导出的函数。使用DLL的动态链接并不是将库代码拷 阅读全文
posted @ 2013-12-24 07:33 codergeek 阅读(199) 评论(0) 推荐(0) 编辑