- 博客(6)
- 收藏
- 关注
原创 【驱动开发】006 系统时间
在win32引用程序中,我们对时间操作一般都会用到 GetTickCount 这个函数返回系统自从启动后经历的毫秒数;同样在内核中也有一个对应的函数KeQueryTickCount ,这个函数返回系统“滴答”数,并不是时间。所以我们必须再调用KeQueryTImeIncrement获取每个滴答间隔。 下面例子参考 楚狂人 代码,获取毫秒数// 获取系统毫秒数//VOID My
2016-11-08 20:36:42 384
原创 【驱动开发】005 注册表操作
注册表 驱动中的注册操作和R3注册表操作还是有一些不同的。 应用程序中需要提供一个跟子健的句柄,而驱动程序中则用全部路径表示。 如下图所示:应用编程中对应的子健驱动编程中对应路径的写法HKEY_LOCAL_MACHINE\Registry\MachineHKEY_USERS\Registry
2016-11-08 18:52:47 440
原创 【驱动开发】004 文件操作
note:本文代码参考了《Windows内核安全与驱动开发》这本书一、OBJECT_ATTRIBUTES 对象属性结构。在ntdef.h文件中有该结构的定义:typedef struct _OBJECT_ATTRIBUTES { ULONG Length; HANDLE RootDirectory; PUNICODE_STRING ObjectN
2016-11-08 13:20:28 797 2
原创 【驱动开发】003 内存、链表、锁
一、内存申请、释放 在C开发R3层应用程序中,我们经常要用malloc申请内存,free释放内存;到了内核也有对应的函数申请内存和释放内存。 内核中微软比较推荐使用的是ExAllocatePoolWithTag和ExFreePoolWithTag,当然还有其他的函数。这对函数比较特殊的一点是有个Tag标签。这个标签的作用就是用来检测内存泄露的。系统根据这个Tag可以大概知道
2016-11-07 22:08:56 455
原创 【驱动开发】002 内核编程环境及其特殊性
note:正在看《Windows内核安全与驱动开发》这本书, 自己做一点笔记。以下内容部分来自这本书。一、 内核模式与 用户模式 内核模式(Kernel Module)简称 内核态 , R0 层 。 用户模式(User Module)j简称用户态, R3层。 一般一个EXE被双击后,系统为其创建一个Process进程,运行在R3层,拥有自
2016-11-07 14:25:23 311
原创 【驱动开发】001 Hello world
note:看了一下《Windows内核安全与驱动开发》自己做一下简单笔记。代码基本都是来自这本书。开发环境: vs2012+wdk8.0运行环境:win7 32 驱动 helloWord// 引用驱动头文件#include // 提供一个unload函数只是为了让这个程序能够动态的卸载VOID DriverUnload(PDRIVER_OBJECT driver){
2016-11-07 13:41:24 392
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人