自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(101)
  • 收藏
  • 关注

原创 彻底搞懂 windows页表自映射3

全家福。

2025-03-14 00:28:36 638

翻译 windows IRQL

我们的 rootkit 项目的目标是访问共享的内核资源,同时确保在任何 CPU 上运行的其他线程都不会踩到我们的脚趾。在处理与 DPC 相关的任何内容之前,我们首先需要某种同步机制,它告诉我们所有 CPU 都以 DISPATCH_LEVEL 的速度运行,以及一种方法来向其他 CPU 发出信号何时退出无限 NOP 循环。在这个非常大的 for 循环中运行上述指令将有效地使系统在几秒钟内不可用,因此,作为故事的寓意,rootkit 在访问内核中的共享资源时应该很快。(代码的共享部分)时,它会获取互斥锁。

2025-03-02 01:09:07 33

原创 X64 windows多核下IDT GDT 和TSS64的研究

pcr 可以用来查看 当前核的KPCR结构体,因为当前GS.base 保存的是Kpcr的基址!pcr 0 查看0号核!pcr 1 查看1号核其他类推。

2025-02-28 03:56:33 144

原创 windows--MmGetFileNameForSection

【代码】windows--MmGetFileNameForSection。

2025-02-28 03:47:56 195

原创 X64 硬件断点(指令断点)的研究

每个调试地址寄存器(DR0到DR3)都保存断点的32/64 位线性地址。断点比较是在物理地址转换发生之前进行的。调试寄存器DR7的内容进一步指定了断点条件。当启用调试扩展时(当控制寄存器CR4中的DE标志被设置时),调试寄存器DR4和DR5被保留,并且试图引用DR4和DRM5寄存器会导致无效的操作码异常(#UD)。当调试扩展未启用时(当DE标志清除时),这些寄存器被别名化为调试寄存器DR6和DR7。

2025-02-27 01:00:09 1064

原创 X64 TF位和Single-step单步调试的研究

如果在执行指令时,处理器检测到 EFLAGS 寄存器中的 TF 标志被设置,则会生成单步调试异常。该异常属于陷阱类异常,因为异常是在指令执行之后生成的。处理器不会在设置 TF 标志的指令之后立即生成此异常。例如,如果使用 POPF 指令设置 TF 标志,则单步陷阱不会发生,直到 POPF 指令后面的指令执行之后。RF标志的主要功能是允许在指令断点条件导致的调试异常后重新启动指令。在这里,调试软件必须在堆栈上的EFLAGS映像中设置此标志,然后才能使用IRETD返回中断的程序(以防止指令断点导致另一个调试异

2025-02-26 03:05:39 1087

原创 X86_64位下的GS寄存器

在 64 位模式下,段机制通常(但不是完全)被禁用,从而创建一个平坦的 64 位线性地址空间。处理器将 CS、DS、ES、SS 的段基地址视为零,从而创建一个与有效地址相等的线性地址。FS 和 GS 段是例外。这些段寄存器(保存段基地址)可以作为线性地址计算中的附加基地址寄存器,用于寻址本地数据和某些操作系统数据结构。

2025-02-25 00:00:28 389

原创 64位TSS中还有隐藏的坑

TSS的值不是静态的,他是随时改变的

2025-02-24 02:49:35 152

原创 彻底理解页表自映射2

页表自映射基址

2025-02-19 04:42:54 727

原创 EPT inline HOOK 跳板的作用

ept hook 时,跳板的作用

2025-02-16 15:46:09 147

原创 X64DBG调试器 最新云端编译方法

X64DBG云端生成,同样也适合其他的项目

2025-02-15 01:21:34 188

原创 X86 MTRR内存缓存优先级

在初始化MTRR之前,软件(通常是系统BIOS)必须将所有固定范围和可变范围MTRR寄存器字段初始化为0。在硬件重置时,P6和更新的处理器清除可变范围MTRR中的有效标志,并清除IA32_MTRR_DEF_TYPE MSR中的E标志,以禁用所有MTRR。如果MTRR未启用(通过在IA32_MTRR_DEF_TYPE MSR中设置E标志),则所有内存访问都是UC内存类型。一. 如果物理地址落在物理存储器的前1 MB字节内,并且启用了固定MTRR,则处理器使用为适当的固定范围MTRR存储的存储器类型。

2025-01-21 00:17:43 339

原创 windows驱动程序中获取物理内存大小

驱动程序获取物理内存大小

2025-01-19 16:17:06 217

原创 CR0和CR4在执行VMXON指令前的设置

因此,CR0中的每个位要么固定为0(两个MSR中的值均为0),要么固定为1(两个RMS中的值都为1),要么灵活(IA32_VMX_CR0_FIXED0中为0,IA32_VMX _CR0_FIXED1中为1)。如果IA32_VMX_CR0_FIXED0中的位X为1,则该位在IA32_VMX_CR0_FIXED1中也为1;如果IA32_VMX_CR0_FIXED1中的位X为0,则该位在IA32_VMX_CR0_FIXED0中也为0。它们报告CR0中在VMX操作中分别允许为0和1的位。

2025-01-11 00:32:00 147 2

原创 MTRR和PAT的关系---缓存控制优先级

关于mtrr寄存器和PAT启用的关系

2025-01-10 01:18:46 228

原创 windows内核 中关键区 和 保护区 函数理解

例程进入关键区 暂时禁用正常内核 APC 的执行,但不阻止特殊内核 APC 的运行。例程进入受保护的区域,这会禁用所有内核模式 APC 传递到当前线程。

2024-12-22 01:19:00 156

原创 windows 自旋锁的实现

【代码】windows 自旋锁的实现。

2024-12-20 23:41:54 231

原创 windows 调试器模型

2024-12-18 01:02:49 423

原创 windows的RemoveHandles函数bug

如果节点2满足要求需要删除,那么windows进行的操作是。那么Node1 将丢失。

2024-12-03 22:04:56 391

原创 WINDOWS 单链表SLIST_ENTRY使用

【代码】WINDOWS 单链表SLIST_ENTRY使用。

2024-12-02 23:42:29 422

原创 R3-->DbgUiConvertStateChangeStructureWorker

内核层将DEBUG_EVENT(未公开结构)转换到DBGUI_WAIT_STATE_CHANGE (未公开结构),在ntdll中再次将DBGUI_WAIT_STATE_CHANGE转换成用户层DEBUG_EVENT(公开结构)

2024-12-02 04:25:14 141

原创 PsGetCurrentThreadTeb()

【代码】PsGetCurrentThreadTeb()

2024-11-30 02:39:28 133

原创 DbgkForwardException

【代码】BOOLEAN DbgkForwardException( IN PEXCEPTION_RECORD64 ExceptionRecord, IN BOOLEAN DebugException,

2024-11-29 22:32:02 115

原创 KdIsThisAKdTrap函数

【代码】KdIsThisAKdTrap函数。

2024-11-29 02:46:29 297

原创 win10 -->DbgkpSendApiMessage

【代码】win10 -->DbgkpSendApiMessage。

2024-11-21 01:20:48 125 1

原创 KTHREAD结构-->ApcState

1. ApcListHead[2]2.KernelApcInProgress

2024-11-08 02:50:05 175

原创 线程多次KeStackAttachProcess后APCstate的状态

2024-11-06 05:46:37 115

原创 KPROCESS结构-->ReadyListHead

当线程企图附加到一个进程时,会将该线程从。进程的就绪线程链表中。

2024-11-06 05:10:15 254

原创 DISPATCHER_HEADER结构-->Type

【代码】DISPATCHER_HEADER结构-->Type。

2024-11-06 03:49:09 151

原创 KiMoveApcState函数作用示意图

2024-11-06 00:33:47 135

原创 KTHREAD结构-->TEB

在切换线程时,修改了FS=3b时的断描述符的base,这样 在3环的时候,fs:0永远都是TEB结构体的指针。这里并不是修改FS寄存器的值。

2024-11-03 13:45:55 260

原创 KTHREAD--InitialStack和KernelStack和TSS的esp0

【代码】KTHREAD--InitialStack和KernelStack和TSS的esp0。

2024-11-03 00:08:33 215

原创 KPRCB结构之GroupIndex

2024-11-02 02:23:16 96

原创 KPRCB结构之ReadySummary和DispatcherReadyListHead

请参考 _KTHREAD *__fastcall KiSelectReadyThread(ULONG LowPriority, _KPRCB *Prcb)

2024-11-02 01:15:42 284

原创 从一个双向链表中移除一个链表

【代码】从一个双向链表中移除一个链表。

2024-11-02 00:50:07 231

原创 MSR寄存器独有的还是共享的

这一章列出了不同英特尔处理器系列的 MSR(模型特定寄存器)。所有列出的 MSR 都可以使用 RDMSR 和 WRMSR 指令进行读取和写入。当一个处理器封装包含单个芯片时,芯片作用域和封装作用域是同义的;但当封装包含多个芯片时,这两者则是不同的。:有关支持的层次级别类型的信息,请参考 CPUID Leaf 1FH 定义中的实际级别类型编号:“V2 Extended Topology Enumeration Leaf”,详见《英特尔® 64 和 IA-32 架构软件开发者手册,第 2A 卷》。

2024-10-28 02:48:30 470

原创 NEG— 取负操作 SBB— 借位整数减法

是计算操作数的二进制补码的负值(取反加1),即将数值取反并改变其符号。例如,NEG 5会得到-5。NEG -5会得到5。

2024-10-27 17:23:49 493

原创 通过 SYSENTER/SYSEXIT指令来学习系统调用

通过sysenter指令,切换特权级别时,CPU不会保存任何寄存器的值,并且会修改elfags寄存器的IF位.通过sysexit指令返回时,将读取msr174的 3环选择子,设置cs段寄存器,通过cs段选择子+8的位置就是3环的ss段选择子.RDX的值加载到EIP中,RCX的值加载到ESP中.所有其他的寄存器 需要操作系统软件保存,并且在特权级别0 能够访问到这块内存。

2024-10-27 16:01:48 1192

原创 通过call指令来学习指令摘要表的细节

表示E8后面跟随2 字节 (什么数不知道)指在与指令同一代码段内的相对地址偏移,指向Instruction Operand Encoding 表中的D列, 他告诉我们 操作数1 是一个0FFSET在64位模式下,某些指令需要使用“地址覆盖前缀”(address override prefix),但这并不被所有处理器支持。如果在64位模式下使用地址覆盖前缀,可能会导致特定处理器型号的执行行为出现不一致或错误。表示兼容模式和传统模式下,这个指令是有效的。

2024-10-26 01:35:55 906

原创 windows内核探索--打印windows的GDT表(全局描述符表)

【代码】windows内核探索--打印windows的GDT表(全局描述符表)

2024-10-25 00:55:42 275

关于opcode从零开始的补充

目前进展

2024-10-19

PE结构之导入表 IAT表的注入载入DLL

IAT表不在 可写字段.我简单的复制了 导入表所在字段的属性.导致无法运行

2024-10-14

PE结构之导入表 IAT表的注入载入DLL

IAT表不在 可写字段.我简单的复制了 导入表所在字段的属性.导致无法运行

2024-10-14

windowspe权威指南随书源码

windowspe权威指南随书源码

2024-09-26

操作系统――精髓与设计原理(第九版) 没有翻译的目录

操作系统――精髓与设计原理(第九版) 没有翻译的目录

2024-09-18

visual c++网络编程开发与实战 光盘

好神奇的网盘 pan.baidu.com/s/14rAaUiTx_YQezyFle1MTqg?pwd=8fnd 提取码: 8fnd

2024-09-07

<WPF>System.Windows.Media下的Colors类颜色对照

使用反射,将collors类中的颜色按选择的显示在客户区

2024-08-24

导入表 IAT表 比10个字多

好的资源让我电脑爆炸!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

2024-04-15

NTSTATUS ObRegisterCallbacks()

NTSTATUS ObRegisterCallbacks()函数过程

2024-03-23

调试文件 pdb 符号文件下载

使用方法 PDBDownloader.exe input.exe C:/folder/to/store/pdb

2024-03-16

vm虚拟机 win7无法安装 vmtool

vm虚拟机 win7无法安装 vmtool 通过远程桌面连接到虚拟机,将文件发送到虚拟机内,然后 安装补丁即可

2024-01-17

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除