Windows驱动
`Nobody
小菜鸡
展开
-
Ring0 Ring3 通信
Ring0:#define DEVICE_OBJECT_NAME L"\\Device\\MaDeviceObjectName" //驱动之间通信#define DEVICE_LINK_NAME L"\\DosDevices\\MaDeviceLinkName" //Ring0 和Ring3 之间通信#define IOCTL_NEITHER_NORMAL(i) \ CTL_CODE \ (原创 2020-05-20 15:15:06 · 383 阅读 · 1 评论 -
Windows内核基础之控制寄存器
概述控制寄存器用于控制和确定CPU的操作模式。主要有:CR0\CR1\CR2\CR3\CR4CR0寄存器PE:启用保护模式的标志,1是保护模式,0是实模式,这个位只是开始或者关闭段机制,并没有启用分页机制。PG:分页机制开关,在启用之前需要确保PE是开启的,否则会出现异常。WP:写保护标志,禁止Ring0程序想Ring3只读页面执行写操作,也就是说当CPL<3的时候,如果WP=0,可以读写任何物理页面,只要线性地址有效,如果WP = 1,可以读取任意用户级物理页,但是对于只读的转载 2020-05-18 18:06:15 · 197 阅读 · 0 评论 -
IRQL的理解和认识
介绍: 中断请求(IRQ,Interrupt Request)一般有两种,一种是外部中断,也就是硬件产生的中断(例如:键盘中断、打印机中断、定时器中断):另一种是由软件指令 int n 产生的中断(例如:INT 3 断点中断、INT 1 单步中断)。后来 Windows 将中断进行的扩展,提出一个中断请求级(IQRL)的概念。其中规定了 32个中断请求级别,分别是 0-2 级别为软件中断,3-31 为硬件中断。Windows IRQL的宏定义#define PASSIVE_LEVEL...原创 2020-05-14 10:00:40 · 4398 阅读 · 0 评论 -
进程的攻与“防” ---- 进程隐藏(Win7 x32 绕过PC Hunter)
说来惭愧,360一面的时候,面试官问我如何去隐藏一个进程,我说很简单那,从EProcess的ActiveProcessLinks的双向列表中断开就完事了啊,面试官当时也没有提醒我,直到面试完,我自己研究了一下从双向列表中断开,但是发现只能躲过任务管理器的眼睛,但是用PcHunter 还是可以枚举出来的,我自己又试了一下从暴力方式去枚举进程,发现也是枚举出来,这时候我才想到,双向列表的断开,其本质上...原创 2020-05-04 14:13:13 · 2703 阅读 · 1 评论 -
PspCidTale的理解和思考
(一)介绍 PspCidTable是一个句柄表,但是这个句柄表不同于普通的句柄表,它不是私有的存放的是系统中所有进程和线程的对象信息的句柄表,其索引是PID和CID。其格式和普通的句柄表完全一样,但也有不同之处:PspCidTable中存的是对象体(EProcess、EThread),而每个进程中私有的句柄表存放的是对象头(Objece_Header) PspCidTable是一个...原创 2020-05-01 10:50:44 · 447 阅读 · 0 评论 -
Windows API 理解----Nt* Zw*
在你要理解Zw和Nt 系列API时,你首先要知道一点,那就是系统调用。什么是系统调用呢? 系统调用:操作系统为应用程序提供的可被调用的一组函数,也叫“System Call”。 从软件角度来看,这些系统调用都是操作系统为软件提供的服务,所以也称“系统服务”,也可以说两个名词是同名词。 系统调用所提供的服务都是在内核中实现的,而软件是在用户空间运行的,其实两者就是CP...原创 2020-03-30 21:57:00 · 700 阅读 · 0 评论