保护模式
文章平均质量分 82
玩撕你
111
展开
-
KPCR结构体
@0环的ETHREAD结构体是记录线程的相关信息,EPROCESS结构体是记录进程相关的信息,同样我们每个CPU也有一个结构体来记录每个CPU的状态这个结构体就是KPCR结构体KPCR结构体如下下面该结构体中几个主要的成员,kd> dt _KPCRnt!_KPCR+0x000 NtTib : _NT_TIB+0x01c SelfPcr ...原创 2019-11-02 00:44:08 · 515 阅读 · 0 评论 -
自己在三环实现ReadProcessMemory避免三环挂钩
// readMemory.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include "windows.h"void ReadMemory(HANDLE hProcess,PVOID pAddr,PVOID pBuffer,DWORD dwSize,DWORD *dwSizeRet){ _asm { le...原创 2019-10-31 00:48:51 · 692 阅读 · 0 评论 -
代码段跳转流程
代码跨段,本质就是修改段寄存器段寄存器有ES,CS,SS,DS,FS,GS,LDTR,TR段寄存器读写:除CS外,其他的段寄存器都可以通过MOV,LES,LSS,LDS,LFS,LGS指令修改CS为什么不能直接修改,cs的值改变意味着Eip的改变,改变cs的同时必须修改eip,所以我们无法用上面的指令来修改1.代码间的跳转(段间跳转吗,非调用门之类)段间跳转,有两种...原创 2019-09-25 00:11:16 · 560 阅读 · 0 评论 -
调用门详解
1. 调用门描述符的格式调用门用于在不同特权级之间实现受控的程序控制转移,通常仅用于使用特权级保护机制的操作系统中。本质上,它只是一个描述符,一个不同于代码段和数据段的描述符,可以安装在GDT或者LGT中,但是不能安装在IDT(中断描述符表)中。注意:Linux Kernel 0.12 中并没有用到调用门。上图就是调用门描述符的格式(图片来自赵炯的《Linux内核完全剖析》)。调用门描...原创 2019-09-25 16:42:39 · 898 阅读 · 0 评论