文章分类 -  『xp内核(中级)』

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

点击右上角即可分享
微信分享提示