文章分类 - 『xp内核(中级)』
发表于 2022-07-23 12:12阅读:25评论:0推荐:0
摘要:#include <ntddk.h> //**********************// //该程序是我抄的模板 // // // /***********************/ /***********************/ /* */ /*定义系统服务表结构体 */ /* */ /**
阅读全文 »
发表于 2022-01-14 17:13阅读:42评论:0推荐:0
摘要:一、8个段寄存器 ES CS SS DS FS GS LDTR TR 共8个 二、段寄存器的赋值 读写LDTR的指令:SLDT/LLDT 读写TR :LTR(0环)/STR 读写SS :LSS 一般的读写段用L '+' 段寄存器的名字就够了 (除了几个特殊的) 或者Mov, DS,AX修改 //要修
阅读全文 »
发表于 2021-12-30 23:34阅读:222评论:0推荐:0
摘要:零、ApcStatePointer与ApcStateIndex组合寻址 一、 函数分析流程为:NtReadVirtualMemory->MmCopyVirtualMemory->MiDoMappedCopy->KeStackAttachProcess->KiAttachProcess KiAttac
阅读全文 »
发表于 2021-12-30 00:00阅读:102评论:0推荐:0
摘要:以后遇到某些结构体成员就补上该成员的含义 kd> dt _eprocess kd> dt _eprocess nt!_EPROCESS +0x000 Pcb : _KPROCESS +0x06c ProcessLock : _EX_PUSH_LOCK +0x070 CreateTime : _LAR
阅读全文 »
发表于 2021-12-29 23:44阅读:255评论:0推荐:0
摘要:零、 (1)、APC是一个线程提供给另一个线程一个函数让它去调用 (2)、同步与异步概念 同步与异步 当您同步执行某项任务时,您将等待它完成,然后再转到另一项任务。当您异步执行某项任 务时,您可以在它完成之前转移到另一个任务。 (3)、海哥提的几个小问题 1、谁插入的APC: 别的线程 2、插入到哪
阅读全文 »
发表于 2021-12-25 23:07阅读:221评论:0推荐:0
摘要:一、 ETHREAD 偏移0x220的位置指向进程结构体 ApcState偏移0x10的位置也指向进程结构体 二、 根据线程切换函数(SwapContext函数),我们可以分析到 线程所需要的CR3的值来源于0x44处的EPROCESS 也就是说: 偏移为0x220的位置的EPROCESS结构体指针
阅读全文 »
发表于 2021-12-19 23:19阅读:27评论:0推荐:0
摘要:一、 两个核同时执行这一条指令的时候就可能出错 二、原子操作相关的API: InterlockedIncrement InterlockedExchangeAdd InterlockedDecrement InterlockedFlushSList InterlockedExchange Inter
阅读全文 »
发表于 2021-12-12 23:16阅读:48评论:0推荐:0
摘要:0x00: 找到句柄表并验证句柄多于512个句柄表之后,TableCode低2位为1。 1、 验证成功。 2、查表的步骤: (1)、 找到进程结构体基址 (2)、 eprocess偏移0xc4的位置有ObjectTable结构体 (3)、结构体的第一个成员就是TableCode! 0x01: 通过句
阅读全文 »
发表于 2021-12-12 22:57阅读:84评论:0推荐:0
摘要:0x00: 首先区分一下概念: SST:系统服务表SSDT:系统服务调度表SSPT:系统服务参数表 SSDT HOOK是Hook的系统服务调度表 0x01: FindWindow监控器就是SSDTHOOKFindWindow函数,改变它系统服务调度表所存的地址为自己重构的地址,以达到监视目的。 0x
阅读全文 »
发表于 2021-12-10 23:24阅读:381评论:0推荐:1
摘要:一、 九个问题: 1、SwapContext 有几个参数,分别是什么?2、SwapContext 在哪里实现了线程切换3、线程切换的时候,会切换CR3吗?切换CR3的条件是什么?4、中断门提权时,CPU会从TSS得到ESP0和SS0,TSS中存储的一定是当前线程的ESP0和SS0吗?如何做到的?5、
阅读全文 »
发表于 2021-12-08 23:19阅读:64评论:3推荐:0
摘要:环境:winxp,编译器:vc++ 一、 // 内存写入.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <windows.h> #include <malloc.h
阅读全文 »
发表于 2021-12-07 22:47阅读:98评论:0推荐:0
摘要:一、仿windows线程切换源代码: ThreadCore.cpp : #include "stdafx.h" #include <windows.h> #include <stdlib.h> #include "ThreadCore.h" #define _SELF "TLSN_仿windows线
阅读全文 »
发表于 2021-12-05 23:01阅读:116评论:0推荐:0
摘要:一、废话不多说,直接上代码 #include<ntddk.h> /************************************************************************/ /* */ /*1、在KTHREAD结构体偏移0x1B0的位置存在双向链表Thread
阅读全文 »
发表于 2021-12-05 14:46阅读:402评论:0推荐:0
摘要:进程断链实现进程隐藏: 一、在0环通过fs获取EPROCESS结构体 二、利用EPROCESS结构体成员 ActiveProcessLinks双向链表去遍历进程 三、找到要断链的进程进行断链 坑点不是很多,注意一些细节即可 #include <ntddk.h> /******************
阅读全文 »
发表于 2021-12-04 21:27阅读:301评论:0推荐:0
摘要:一、shellcode要求:放在任意位置都能运行 二、shellcode四大原则: 1、不能有全局变量 2、不能使用常量字符串 3、不能直接调用系统函数 4、不能嵌套调用其他函数 三、不同于之前的内存写入,shellcode不依赖于修复重定位表与IAT表. 四、shellcode编写的步骤 1、通过
阅读全文 »