随笔分类 -  Windows X86内核学习

摘要:查看SSDT和SSDTShadow kd> dd KeServiceDescriptorTable 80553fa0 80502b8c 00000000 0000011c 80503000 Ntoskrl.exe 80553fb0 00000000 00000000 00000000 0000000 阅读全文
posted @ 2021-01-04 22:01 Harmonica11 阅读(474) 评论(0) 推荐(0)
摘要:SystemServiceTable 系统服务表 ServiceTable:指向函数地址表 Count:系统服务表被调用次数 ServiceLimit:函数数量 ArgmentTable:指向函数参数表 当进入0环之前,在eax中存了一个数字,称为系统调用号,以0x115举例 00000000000 阅读全文
posted @ 2021-01-04 21:59 Harmonica11 阅读(248) 评论(0) 推荐(0)
摘要:首先要说几个结构 _KTRAP_FRAME kd> dt _KTRAP_FRAME nt!_KTRAP_FRAME +0x000 DbgEbp : Uint4B +0x004 DbgEip : Uint4B +0x008 DbgArgMark : Uint4B +0x00c DbgArgPointe 阅读全文
posted @ 2021-01-04 21:58 Harmonica11 阅读(495) 评论(0) 推荐(0)
摘要:BOOL WriteProcessMemory( HANDLE hProcess, LPVOID lpBaseAddress, LPCVOID lpBuffer, SIZE_T nSize, SIZE_T *lpNumberOfBytesWritten ); 首先分析一下kernel32中的Writ 阅读全文
posted @ 2021-01-04 21:56 Harmonica11 阅读(646) 评论(0) 推荐(0)
摘要:#include "stdafx.h" #include <windows.h> DWORD* buf; void __declspec(naked) Test(){ __asm{ pushad pushfd } *(unsigned __int64*)(((0x0000>>9)&0x7FFFF8) 阅读全文
posted @ 2020-12-24 20:22 Harmonica11 阅读(222) 评论(0) 推荐(0)
摘要:kd> u MmIsAddressValid l50h nt!MmIsAddressValid: 80511980 8bff mov edi,edi 80511982 55 push ebp 80511983 8bec mov ebp,esp 80511985 51 push ecx 8051198 阅读全文
posted @ 2020-12-24 20:21 Harmonica11 阅读(276) 评论(0) 推荐(0)
摘要:CR3-->PDPT|PDPTE0|-->PDT-->PTT-->物理内存 |PDPTE1| |PDPTE2| |PDPTE3| 每个表项十六个字节,结构 PDE/PTE保留位的第一处为XD位,判断该位是否可执行,XD=1时不可执行 实验 测试代码 #include "stdafx.h" void 阅读全文
posted @ 2020-12-24 20:20 Harmonica11 阅读(120) 评论(0) 推荐(0)
摘要:物理页的属性=PDE的属性&PTE的属性(后三个字节为属性) P:P=1为有效物理页 R/W:R/W=1可读可写 R/W=0只读 U/S:U/S=0 特权用户 U/S=1 普通用户 PS:PS=1时PDE直接指向物理页 A:A=1被访问过 D:D=1被写过 实验一:修改字符串(R/W) 测试代码 # 阅读全文
posted @ 2020-12-24 20:19 Harmonica11 阅读(100) 评论(0) 推荐(0)
摘要:CR3-->PDT|PDE0|-->PTT0|PTE0|-->物理内存 |PDE1| |PTE1| |PDE2| |PTE2| 将一个线性地址分为10,10,12三部分,分别为PDT,PTT,物理内存的偏移 如果为大页则分为10,22两部分,分别为PDT,物理内存的偏移 CR3-->PDT-->物理 阅读全文
posted @ 2020-12-24 20:18 Harmonica11 阅读(178) 评论(0) 推荐(0)
摘要:TSS结构 使用TSS过程 在GDT表中有TSS段描述符,TR寄存器Base Address为TSS位置,Segment Limit为TSS长度 TSS段描述符结构 B位如果为0表示还未加载到TR寄存器中,为1则已经加载 任务门结构 任务门放在IDT表中 实验 构造任务门 eq 8003f500 0 阅读全文
posted @ 2020-12-24 20:16 Harmonica11 阅读(208) 评论(0) 推荐(0)
摘要:中断门与陷阱门在IDT表中,查看IDT表 kd> dq idtr L40h 8003f400 80538e00`0008f19c 80538e00`0008f314 8003f410 00008500`0058113e 8053ee00`0008f6e4 8003f420 8053ee00`0008 阅读全文
posted @ 2020-12-24 20:15 Harmonica11 阅读(256) 评论(0) 推荐(0)
摘要:结构 根据上一篇段描述符,S位为0,Type为1100 Param Count为传递的参数数量 Segment Selector为段选择子 offset 31:16+15:00为调用的地址 调用门提权实验 环境: Windows XP SP3 //win7会蓝屏 ollyice windbgX 先做 阅读全文
posted @ 2020-12-24 20:13 Harmonica11 阅读(156) 评论(0) 推荐(0)
摘要:段描述符 结构 P位 P=1:段描述符有效 P=0:段描述符无效 G位 G=0:段寄存器Limit单位为字节,Limit最大值0x000FFFFF G=1:段寄存器Limit单位为4KB,Limit最大值0xFFFFFFFF S位 S=1:代码段或数据段描述符 S=0:系统段描述符 Type 如果S 阅读全文
posted @ 2020-12-24 20:11 Harmonica11 阅读(739) 评论(0) 推荐(0)