内核学习笔记
zfdyq0
这个作者很懒,什么都没留下…
展开
-
Windows分页管理机制的学习(一)实践1
一)先来针对未开启PAE模式来进行分析测试机器XP 32位系统:(Dbgview.exe程序的线性(虚拟)地址与物理地址的对应) 这里关闭了PAE模式。 我先用OD载入Dbgview.exe程序,并且运行,看到程序入口点的线性(虚拟)地址:004153B7==> 00000000 01000001 01010011 10110111 根据INTEL手册中的定义原创 2014-11-08 21:06:06 · 1865 阅读 · 0 评论 -
关于*P双机调试的学习
关于*P双机调试的学习 一:相关基础知识: 根据软件调试这本书上说的,Windows启动过程如下图: 系统一共调用了两次KdInitSystem()函数。 第一次调用KdInitSystem会初始化一下全局变量: 1.KdPitchDebugger:布尔类型,用来表示是否显式抑制内核调试。当启动选项中包含/DEBUG选项时,这个变量会被设置为真。原创 2015-01-01 00:20:54 · 4536 阅读 · 3 评论 -
记录一下 关于进程隐藏摘链操作的问题
隐藏进程有好多方法,抹除句柄表,抹除csrss中的注册进程信息,摘除Active链等等,今天来记录一下摘链注意的问题。网上有很多摘链的DEMO,至于稳定性。。。。时不时的蓝~~原因为什么,很多代码都只是一味的拆除了相应进程的链表,但是却没有考虑到系统在操作动态链表的一系列问题,先看一下WRK中的销毁进程的操作,目录:WRK-v1.2\base\ntos\ps\p原创 2014-12-09 00:28:13 · 2212 阅读 · 0 评论 -
X64下的解析句柄表
一:X64下的句柄表的查找:关于PspCidTable的寻找,我是通过PsLookupProcessByProcessId查找特征码寻找pspCidTable和32位没什么区别。疑问:我想在KPCR中的KdVersionBlock中寻找,但是64位系统不知道为什么总是NULL,各位牛牛知道的求科普~寻找PspCidTable:SIZE_T FindCidTable(){SI原创 2014-12-07 17:50:16 · 3428 阅读 · 2 评论 -
Win7 内核重载 1 ——内核版PELoader
重载重点,其实就是自己实现一个山寨版的Windows PELoader ,重载其实就是将一个模块自己重新加载一份到别的内存,运行它。所谓内核重载,则是将内核文件即:ntkrnlpa.exe 自己加载一份到内存,并运行它,这样的好处可以避免一切HOOK,如SSDT ,InLineHook 等等,原理就是HOOK继续HOOK主原来内核,但是实际上Windows走的是我们自己的内核。原创 2014-12-19 20:50:54 · 8327 阅读 · 1 评论 -
内核调试学习笔记
内核调试学习笔记 第一次调用KdInitSystem会初始化一下全局变量: 1.KdPitchDebugger:布尔类型,用来表示是否显式抑制内核调试。当启动选项中包含/DEBUG选项时,这个变量会被设置为真。2.KdDeBuggerEnable:布尔类型,用来表示内核调试是否被启用。当启动选项中包含/DEBUG或者/DEBUGPORT 而且不包含/NODEBUG时,这个变量会被设原创 2014-12-17 10:59:21 · 2211 阅读 · 0 评论 -
关于PspCidTable
PspCidTable为一个全局变量,其格式与普通的句柄表是完全一样的.但它与每个进程私有的句柄表有以下不同: 1.PspCidTable中存放的对象是系统中所有的进线程对象指针,其索引就是PID和CID 2.PspCidTable中存放是对象体(指向EPROCESS和ETHREAD),而每个进程私有的句柄表则存放的是对象头(OBJECT_HEADER) 3.PspCidTable原创 2014-10-20 00:36:49 · 910 阅读 · 0 评论 -
Windows句柄表学习笔记
遍历系统进程有一种方法就是通过解析句柄表来遍历,于是学习了一下Windows句柄表。句柄表位于EPROCESS结构的+0x0f4 偏移处(win7x86),先来看一下句柄表的结构: kd> dt 0x83d58fc0 _HANDLE_TABLEnt!_HANDLE_TABLE +0x000 TableCode : 0x94bac001 //句柄表 +0x0原创 2014-10-17 23:16:37 · 2051 阅读 · 0 评论 -
《Windows内核原理与实现》第三章学习笔记---KPROCESS学习
typedef struct _KPROCESS { // // The dispatch header and profile listhead are fairly infrequently // referenced. // DISPATCHER_HEADER Header; //表明KPROCESS也是一个分发器对象(dispatcher o原创 2014-10-16 00:48:10 · 2876 阅读 · 0 评论 -
Windows分页管理机制的学习(一)实践2
(二)针对开启PAE模式来进行分析测试机器Win7 32位系统:(Dbgview.exe程序的线性(虚拟)地址与物理地址的对应)根据读INTEL手册可知,开启了PAE模式后线性(虚拟)地址的结构发生了变化(开启PAE后PDE共4*4kb,每项8byte ): 30~31位变成了PDPTE 首先在虚拟机中打开OD,加载Dbgview.exe记录下入口点地址:00415757原创 2014-11-09 21:11:46 · 885 阅读 · 0 评论 -
Windows分页管理机制的学习(一)理论部分
PAE模式什么是PAE模式:PAE,物理地址扩展,是基于x86 的服务器的一种功能,它使运行 Windows Server 2003, Enterprise Edition 和 Windows Server 2003,Datacenter Edition 的计算机可以支持4GB 以上物理内存。物理地址扩展 (PAE) 允许将最多64GB 的物理内存用作常规的4 KB 页面,并扩展内核能使用的位原创 2014-11-08 20:55:57 · 1970 阅读 · 0 评论 -
驱动开发中应该注意的事项
1. 一定不要在没有标注 I/O 请求数据包 (IRP) 挂起 (IoMarkIrpPending) 的情况下通过调度例程返回 STATUS_PENDING。 2. 一定不要通过中断服务例程 (ISR) 调用 KeSynchronizeExecution。 它会使系统死锁。 3. 一定不要将 DeviceObject->Flags 设置为 DO_BUFFERED_IO 和 DO_D转载 2015-03-03 23:18:00 · 1981 阅读 · 0 评论