Windows内核研究
吾无法无天
刚毕业的大学生
展开
-
拦截驱动加载
思路简单粗暴,直接注册一个模块监听,然后当目标驱动加载时hook它的驱动加载函数,直接返回成功,对付一下比较简单的驱动保护效果屡试不爽获取DriverEntryPVOID GetDriverEntryByImageBase(PVOID ImageBase){ PIMAGE_DOS_HEADER pDOSHeader; PIMAGE_NT_HEADERS64 pNTHeader; PVOID pEntryPoint; pDOSHeader = (PIMAGE_DOS_HEADER)ImageB原创 2021-09-04 15:55:31 · 1522 阅读 · 0 评论 -
枚举进程,线程,进程模块
#include <ntifs.h>#include <ntddk.h>#include <windef.h>typedef struct _PEB_LDR_DATA { BYTE Reserved1[8]; PVOID Reserved2[3]; LIST_ENTRY InMemoryOrderModuleList;} PEB_LDR_DAT...原创 2020-02-19 05:13:31 · 993 阅读 · 0 评论 -
获取某个进程的所有线程ID和入口地址
因为有个要定位线程头部特征的需要(有些游戏调试器一附加就立马死掉,多半是有个线程在搞鬼,杀掉这个线程就可以正常附加调试了),首先要找到线程入口地址,在网上找了下,发现在获取64位程序的线程信息时,入口地址是错的(64位的地址溢出了),稍稍改动了一下(要编译为64位)#include <windows.h>#include <tlhelp32.h>#include ...原创 2020-02-14 18:14:10 · 3026 阅读 · 1 评论 -
写了一个读写驱动(源码)
一个驱动读写,Win10 x64和Win 7x64都测试过,没问题原创 2019-08-28 13:57:46 · 16506 阅读 · 29 评论 -
驱动读写应用程序内存
用驱动读写应用程序的内存原创 2019-08-26 03:47:42 · 7471 阅读 · 4 评论 -
驱动开发入门总结
初学Windows驱动开发的一些总结原创 2019-08-24 22:52:08 · 3843 阅读 · 3 评论 -
通过导出表和函数名 获取特定进程下模块的导出函数地址
需要的头文件:#include<windows.h>#include<iostream>#include<Psapi.h>using namespace std;获取进程下的模块基址:PVOID GetProcessMoudleBase(HANDLE hProcess, char* moduleName){ // 遍历进程模块, HM...原创 2020-04-24 03:12:55 · 1872 阅读 · 0 评论 -
进程隐藏(用摘链的方法)
ring3层跑的程序在ring0层都有一个对应的内核对象,这些内核对象被用一个双向链表连起来,所谓隐藏其实只是把某进程在内核中对应的进程对象从该链中摘掉,让ring3层的API无法找到该链在进程对象下面有:0: kd> dt _EPROCESSnt!_EPROCESS +0x000 Pcb : _KPROCESS +0x2d8 Process...原创 2020-02-17 23:44:38 · 1043 阅读 · 0 评论 -
ring0层监视进程与线程
项目属性--->链接器---->命令行的其他选项加入 /INTEGRITYCHECK#include <ntifs.h>#include <ntddk.h>VOID CreateProcessNotifyEx( _Inout_ PEPROCESS Process, _In_ HANDLE ...原创 2020-02-17 23:25:23 · 561 阅读 · 0 评论 -
win10 x64中inlineHook SSDT里面的函数
inlineHook的原理:为了方便好理解,一些变量名和函数名在这里使用中文命名,有些编译器不支持中文命名,在这里要注意(我的是VS2019)hook.h:#pragma once#include<ntifs.h>#include<ntddk.h>#pragma intrinsic(__readmsr)//SSDT表typedef str...原创 2020-02-13 17:12:36 · 4392 阅读 · 7 评论 -
win7 x64中寻找SSDT
win32位的SSDT表是导出的,根本不用找.但x64的就不导出了win7x64下:要得到SSDT的地址,首先找到KiSystemCall64的地址,在它的下面就有SSDT的线索找的KiSystemCall64只需要读出MSR(特别模块寄存器)c0000082的值,便是KiSystemCall64的地址:以下使用Windbg调试:3: kd> rdmsr c0000...原创 2020-01-06 23:24:26 · 1209 阅读 · 0 评论 -
VT虚拟化驱动入门教程
手把手教VT驱动框架编写及 无视检测和PG的无痕HOOK原创 2020-11-10 11:50:46 · 6896 阅读 · 4 评论 -
基于VT技术的HOOK流程图
基于VT技术,无视PatchGuardMSR HOOK:EPT HOOK:Win10 1809测试:原创 2020-03-27 07:11:41 · 4735 阅读 · 6 评论 -
win10 x64获取未导出内核函数地址
用Sunday算法进行特征码匹配.h文件://系统信息类typedef enum _SYSTEM_INFORMATION_CLASS { SystemBasicInformation = 0, //系统的基本信息 SystemProcessorInformation, // obsolete...delete SystemPerformanceI...原创 2020-03-18 13:04:03 · 1865 阅读 · 0 评论 -
WDF驱动框架,简单IO(METHOD_BUFFERED)
基本框架:#include<ntddk.h>#include<wdf.h>#define IOCTL_TEST CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ALL_ACCESS)#define DEVICE_NAME L"\\Device\\WDF_DeviceName"#define S...原创 2020-03-10 19:35:38 · 1335 阅读 · 2 评论 -
windows保护模式学习笔记
段寄存器:段描述符:原创 2020-02-23 04:05:39 · 511 阅读 · 2 评论