windows内核
Fly20141201
做真实的自己,不为别人而活;做自己喜欢的事,努力、踏实~
展开
-
获取全局描述符表GDT的内容
/stdfx.h文件//Ring0环的程序//测试环境VS2005#ifndef _WIN32_WINNT // Allow use of features specific to Windows XP or later. #define _WIN32_WINNT 0x0501 // Change this to the appropriate原创 2014-11-09 20:00:02 · 4094 阅读 · 4 评论 -
SSDTHook实例--编写稳定的Hook过滤函数
讲解如何写Hook过滤函数,比如NewZwOpenProcess。打开进程。很多游戏保护都会对这个函数进行Hook。由于我们没有游戏保护的代码,无法得知游戏公司是如何编写这个过滤函数。 我看到很多奇形怪状的Hook过滤函数的写法。看得蛋痛无比。比如:http://bbs.pediy.com/showthread.php?t=126802http://bbs.pediy.com/sh原创 2015-07-04 13:45:16 · 3143 阅读 · 0 评论 -
windows内核Api的学习
windows内核api就是ntoskrnl.exe导出的函数。我们可以跟调用应用层的api一样,调用内核api。不过内核api需要注意的是,如果函数导出了,并且函数文档化(也就是可以直接在msdn上搜索到)。ExFreePool函数导出,并且文档化,那么我们可以直接调用。导出了未文档化,那么我们就要声明。什么叫文档化和未文档化呢?大家来看一个函数:UCHAR *PsGetProcessIma原创 2015-07-02 16:50:18 · 3643 阅读 · 1 评论 -
SSDT表概念详解
SSDT 的全称是 System Services Descriptor Table,系统服务描述符表。这个表就是一个把 Ring3 的 Win32 API 和 Ring0 的内核 API 联系起来。Ring3下调用的所有函数最终都会先进入到ntdll里面的,比如ReadFile,就会进入ntdll的ZwReadFile SSDT 并不仅仅只包含一个庞大的地址索引表,它还包含着一些其它原创 2015-06-25 11:18:11 · 5779 阅读 · 0 评论 -
SSDT表函数Hook原理
其实 SSDT Hook 的原理是很简单的,我们可以知道在 SSDT 这个数组中呢,保存了系统服务的地址,比如对于 Ring0 下的 NtQuerySystemInformation 这个系统服务的地址,就保存在 KeServiceDescriptorTable[105h] 中(计算公式 address = SSDT首地址+服务号*4) lkd> u 84647e3ent!NtQuer原创 2015-06-25 13:22:59 · 1975 阅读 · 0 评论 -
windows内核开发环境的简易搭建
一、.windows内核需要的软件1.WDK原创 2014-10-01 08:41:51 · 1827 阅读 · 0 评论 -
SSDT表的遍历
//VS2005创建的工程,系统xp sp2//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//stdafx.h文件#ifndef _WIN32_WINNT // Allow use of features specific to Windows XP or原创 2014-11-13 14:01:18 · 2439 阅读 · 0 评论 -
调试存储器转储文件
windows XP系统在正常运行的情况下,原创 2014-10-07 19:40:04 · 2436 阅读 · 0 评论 -
windows内核编程基础知识
/*1.基本的驱动数据结构//驱动对象结构体typedef struct _DRIVER_OBJECT { CSHORT Type; //结构类型 CSHORT Size; //结构大小 PDEVICE_OBJECT DeviceObject; //驱动设备对象 PDRIVER_EXTENSION DriverExtension; //驱动扩展指针原创 2014-11-10 15:26:21 · 1046 阅读 · 0 评论 -
进程保护原理Hook函数Openprocess
Win32子系统: Win32是Windows的一个子系统,还有另外的子系统原创 2014-11-10 14:31:44 · 7584 阅读 · 0 评论 -
Windows驱动派遣函数的学习
//派遣处理例程的介绍://IPR简介://IRP全称(I/O Request Package),即输入输出请求包。他是windows驱动的重要概念,用户模式下所有对驱动程序的I/O请求,全部由操作系统转化为一个叫做IRP的数据结构,不同的IRP数据会被“派遗”到不//同的派遣函数(DisPatch Function)中处理。//作用:上层应用程序与底层驱动通信即EXE程序与SYS的通信原创 2014-11-10 18:17:40 · 1216 阅读 · 0 评论 -
一个简单的驱动实例
//简单的DDK实例--C语言#include //请记住:在Ring0环,内存资源很宝贵#define INITCODE code_seg("INIT") //初始化内存#define PAGECODE code_seg("PAGE") //分页内存(内存资源紧张时,可以置换到硬盘)#define NPAGECODE code_seg() //非分页内存(常驻内存原创 2014-11-10 16:33:01 · 1274 阅读 · 0 评论 -
使用EasySYS搭建驱动开发基本框架
提供EasySYS的下载地址:http://bbs.pediy.com/showthread.php?t=70633,看雪上有提供下载,自行百度。EasySYS你能够帮我们快速的搭建驱动的开发框架,省去了我们写基本框架代码的时间,但是我个人不太喜欢用它来搭建驱动开发框架,感觉里面的代码风格不喜欢,不少代码得删去。在使用EasySYS之前,一定要确保你的系统安装了微软驱动开发包DDK或者新版原创 2014-11-11 13:21:48 · 1940 阅读 · 0 评论 -
SSDT表结构的深入学习
SSDT表的知识目录:A、了解SSDT结构B、由SSDT索引号获取当前函数地址 C、如何获取索引号D、获取起源地址-判断SSDT是否被HOOKE、如何向内核地址写入自己代码 A、了解SSDT结构SSDT的全称是 System ServicesDescriptor Table--系统服务描述符表,是由 ntoskrnl.exe导出KeServic原创 2014-11-10 21:13:24 · 1675 阅读 · 0 评论 -
获取中断描述符表IDT的信息
/*GetIDT.h*/#ifndef _WIN32_WINNT // Allow use of features specific to Windows XP or later. #define _WIN32_WINNT 0x0501 // Change this to the appropriate value to target other ver原创 2014-11-08 18:53:53 · 1699 阅读 · 1 评论 -
驱动通信基本框架的实例
1.Ring0驱动层代码的编写://codemsg.h 通信控制码的定义#ifndef _DEFINE_H_#define _DEFINE_H_// _number: 0 -> 2047 : reserved for Microsoft 微软保留// 2047 -> 4095 : reserved for OEMs 用户自定义 #define原创 2015-06-24 16:09:14 · 1930 阅读 · 0 评论