3.KPCR】的更多相关文章

KPCR: CPU控制区(Processor Control Region) 当线程进入0环时, FS:[0]指向KPCR(3环时FS[0]-> TEB)每个CPU都有一个KPCR结构体(一个核一个)KPCR中存储了CPU本身要用的一些重要数据: GDT, IDT以及线程相关的一些信息.在winbbg中查看KPCR结构体 kd> dt _KPCR nt!_KPCR +0x000 NtTib : _NT_TIB //子结构体 +0x01c SelfPcr : Ptr32 _KPCR//指向自己,…
Windows内核分析索引目录:https://www.cnblogs.com/onetrainee/p/11675224.html 逆向分析操作系统内核代码至少需要具备两项技能: 段页汇编代码非常懂. 至少掌握三个结构体:EPROCESS.ETHRAEAD.KPCR(注意:EPROCESS.ETHREAD是在R0,在R3的是PEB与TEB.) 一.KPCR结构体介绍 当线程进入0环时,FS:[0]指向KPCR(3环时 FS:[0] --> TEB,如果想了解这个信息,可以看这篇博客利用C++实…
catalogue . 静态分析.动态分析.内存镜像分析对比 . Memory Analysis Approach . volatility: An advanced memory forensics framework . github-djteller-MemoryAnalysis . Awesome Malware Analysis Projects 1. 静态分析.动态分析.内存镜像分析对比 0x1: Static Analysis Challenges . Time consuming…
搞内核研究的经常对中断这个概念肯定不陌生,经常我们会接触很多与中断相关的术语,按照软件和硬件进行分类: 硬件CPU相关: IRQ.IDT.cli&sti 软件操作系统相关: APC.DPC.IRQL 一直以来对中断这一部分内容弄的一知半解,操作系统和CPU之间如何协同工作也是很模糊.最近花了点时间认真把这块知识进行了梳理,不当之处,还请高手指出,先行谢过了! 本文旨在解答下面这些问题: 1.IRQ和IRQL之间是什么关系? 2.Windows是如何在软件层面上虚拟出IRQL这套中断机制的 3.A…
原文链接:http://shayi1983.blog.51cto.com/4681835/1734822 本文为原创翻译,原文出处为 http://www.codemachine.com/article_x64kvas.html 对于原文中,较难理解或者论述过于简单的部分,则添加了译注:译注来自于内核调试器验证的结果,以及 WRK 源码中的逻辑,还有<深入解析 Windows 操作系统>一书中的译文. 本文档解释 X64 版本的 Windows 7 与 Server 2008 R2 上,内核虚…
====================================================== LIST_ENTRY PsLoadedModuleList; [定  义] wrk\wrk-v1.2\base\ntos\mm\Sysload.c [初始化] wrk\wrk-v1.2\base\ntos\mm\Sysload.c  [MiInitializeLoadedModuleList()] [引  用] l  NtQuerySystemInformation()         …
0x00 前言 本文主要是讨论Windows 7 x64下的内核虚拟地址空间的结构,可以利用WiinDBG调试的扩展命令"!CMKD.kvas"来显示x64下的内核虚拟地址空间的整体布局.了解内核的地址布局在某些情况下是很有的,比如说在研究New Blue Pill的源码和虚拟化的时候. 0x01 基本结构 X64的CPU的地址为64位,但实际上只支持48位的虚拟地址空间供软件使用.虚拟地址的高16位在用户模式下总是被设置为0000,而在内核模式下全置为FFFF. 因此用户模式的地址空…
KiFastCallEntry() 机制分析 概述 Win32 子系统 API 调用 ntdll!ZwWriteFile() 函数 ntdll!KiFastSystemCall() 函数 _KUSER_SHARED_DATA 结构 切入 KiFastCallEntry() 函数 读取 TSS 信息 KTRAP_FRAME 结构 系统服务例程号与 ServiceTable ServiceTable ServiceTable entry 读取目标例程地址和参数size KiFastCallEntry…
PsActiveProcessHead的定义: 在windows系统中,所有的活动进程都是连在一起的,构成一个双链表,表头是全局变量PsActiveProcessHead,当一个进程被创建时,其ActiveProcessList域将被作为节点加入到此链表中:当进程被删除时,则从此链表中移除,如果windows需要枚举所有的进程,直接操纵此链表即可. 方法一:从KdInitSystem函数地址处硬编码搜索 方法二:从System进程(pid=4)的PEPROCESS地址获取 方法三:从ntoskr…
参考资料: 1. <Windows Internals> 2. Dependency Walker 3. Ntoskrnl.exe 4. Livekd的使用 5. WinDbg的使用(一) 6. WinDbg的使用(二) Now, let's delve into the internal structure & the role each key OS component plays at the high-level achitecture. ^-^ 知识点: ● 先上图,下图是w…