2012年8月22日

ObReferenceObjectByName

摘要: 一、由于ObReferenceObjectByName没有文档化,故在使用前先做声明:#ifdef __cplusplusextern "C"{#endif#include <NTDDK.h>NTKERNELAPINTSTATUSObReferenceObjectByName( IN PUNICODE_STRING ObjectName, IN ULONG Attributes, IN PACCESS_STATE PassedAccessState OPTIONAL, IN ACCESS_MASK DesiredAccess OPTIONAL, IN POBJE 阅读全文

posted @ 2012-08-22 09:32 紫 陌 阅读(6214) 评论(5) 推荐(2) 编辑

2012年8月12日

过DNF TP驱动保护(二)(转载)

摘要: 文章目录: 01. 博文简介:02. 环境及工具准备:03. 分析 TP 所做的保护:04. 干掉 NtOpenProcess 中的 Deep InLine Hook:05. 干掉 NtOpenThread 中的 Deep InLine Hook:06. 干掉 NtReadVirtualMemory 中的 InLine Hook:07. 干掉 NtWriteVirtualMemory 中的 InLine Hook:08. 干掉 KiAttachProcess 的 InLine Hook:09. 干掉 NtGetContextThread 中的 InLine Hook:10. 干掉 NtSetC 阅读全文

posted @ 2012-08-12 22:25 紫 陌 阅读(813) 评论(0) 推荐(0) 编辑

2012年7月28日

StartIO例程------------IoStartPacket、IoStartNextPacket、IoCancelIrp实现代码

摘要: 根据wdk代码做的IoStartPacket、IoStartNextPacket、IoCancelIrp简化版:VOID IoStartPacket( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PULONG Key OPTIONAL, IN PDRIVER_CANCEL CancelFunction OPTIONAL ) /*++ Routine Description: This routine attempts to start the specified packet request (IRP) on the speci... 阅读全文

posted @ 2012-07-28 14:36 紫 陌 阅读(1724) 评论(0) 推荐(0) 编辑

2012年7月18日

VC6.0+WDK7600编译开发配置环境

摘要: 1.安装好VC6和DWK,先后顺序无关。从开始菜单找到WDK的程序目录,进入“WindowsXPCheckedBuildEnvironment”,输入命令"build",此时WDK将会把自己进行编译,大约需要1分钟。2.VC6设置Include/Lib/Executable目录。设置为自己需要编译的平台的各个目录即可,Include要确保找到ntddk.h等,Lib与Include对应,Executable要确保能找到cl.exe例如XP平台下设置为:include包含部分:C:\WinDDK\7600.16385.1\inc\ddkC:\WinDDK\7600.16385 阅读全文

posted @ 2012-07-18 17:30 紫 陌 阅读(5119) 评论(0) 推荐(0) 编辑

2012年7月17日

ObReferenceObjectByHandle内核函数

摘要: 大槪就是看这个句柄是当前进程的句柄还是当前线程的句柄,最后再看看这AccessMode是内核还是用户态下,内核的话,句柄表就用ObpKernelHandleTable,用户态的话就用当前进程的句柄表NTSTATUSObReferenceObjectByHandle ( __in HANDLE Handle, __in ACCESS_MASK DesiredAccess, __in_opt POBJECT_TYPE ObjectType, __in KPROCESSOR_MODE AccessMode, __out PVOID *Object, __out_opt POBJECT_HANDLE_ 阅读全文

posted @ 2012-07-17 06:39 紫 陌 阅读(7098) 评论(0) 推荐(0) 编辑

2012年6月26日

DebugPrint格式输出

摘要: DebugPrint格式说明符符号 格式说明符 类型%c, %lc ANSI字符 char%C, %wc 宽字符 wchar_t%d, %i 十进制有符号整数 int%D 十进制_int64 _int64%L 十六进制的LARGE_INTEGER LARGE_INTEGER%s, %ls NULL终止的ANSI字符串 char*%S, %ws NULL终止的宽字符串 wchar_t*%Z ANSI_STRING字符串%wZ UNICODE_STRING字符串%u 十进制的ULONG ULONG%x 小写字符十六进制的ULONG ULONG%X 大写字符十六进制的ULONG ULONG%p... 阅读全文

posted @ 2012-06-26 11:11 紫 陌 阅读(3731) 评论(0) 推荐(0) 编辑

2012年6月22日

最简单的NT驱动

摘要: 一、源码//HelloDDK.h#pragma once#ifdef __cplusplusextern "C"{#endif#include <ntddk.h>#ifdef __cplusplus}#endif#define PAGEDCODEcode_seg("PAGE")#define LOCKEDCODEcode_seg()#define INITCODEcode_seg("INIT")#define PAGEDDATAdata_seg("PAGE")#define LOCKEDDATAdata 阅读全文

posted @ 2012-06-22 17:02 紫 陌 阅读(560) 评论(0) 推荐(0) 编辑

2012年6月14日

最简单的WDM驱动

摘要: 一、代码部分//HelloWDM.h#pragma once#ifdef __cplusplusextern "C"{#endif#include <wdm.h>#ifdef __cplusplus}#endif#define INITCODEcode_seg("INIT")#define LOCKEDCODEcode_seg()#define PAGEDCODEcode_seg("PAGE")#define INITDATAdata_seg("INIT")#define LOCKEDDATAdata_ 阅读全文

posted @ 2012-06-14 14:43 紫 陌 阅读(2342) 评论(0) 推荐(0) 编辑

设备对象(DEVICE_OBJECT)-----------------设备名称

摘要: 通常设备对象都把自己的名字放到\Device目录中。在Windows 2000中,设备的名称有两个用途。第一个用途,设备命名后,其它内核模式部件可以通过调用IoGetDeviceObjectPointer函数找到该设备,找到设备对象后,就可以向该设备的驱动程序发送IRP。另一个用途,允许应用程序打开命名设备的句柄,这样它们就可以向驱动程序发送IRP。应用程序可以使用标准的CreateFile API打开命名设备句柄,然后用ReadFile、WriteFile,和DeviceIoControl向驱动程序发出请求。应用程序打开设备句柄时使用\\.\路径前缀而不是标准的UNC(统一命名约定)名称,如 阅读全文

posted @ 2012-06-14 14:27 紫 陌 阅读(2823) 评论(0) 推荐(0) 编辑

2012年6月5日

设备对象(DEVICE_OBJECT)-----------------主要成员

摘要: 一、设备对象(DEVICE_OBJECT)kd> dt _device_objectntdll!_DEVICE_OBJECT +0x000 Type : Int2B +0x002 Size : Uint2B +0x004 ReferenceCount : Int4B +0x008 DriverObject : Ptr32 _DRIVER_OBJECT ;该设备所属的驱动对象 +0x00c NextDevice : Ptr32 _DEVICE_OBJECT ;指向下一个设备,该设备与下一个设备同属于一个驱动对象 +0x010 AttachedDevice : Ptr32 _DEVICE_O 阅读全文

posted @ 2012-06-05 16:53 紫 陌 阅读(1848) 评论(0) 推荐(0) 编辑

导航