![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
保护模式
玩撕你
111
展开
-
KPCR结构体
@0环的ETHREAD结构体是记录线程的相关信息,EPROCESS结构体是记录进程相关的信息,同样我们每个CPU也有一个结构体来记录每个CPU的状态这个结构体就是KPCR结构体KPCR结构体如下下面该结构体中几个主要的成员, kd> dt _KPCR nt!_KPCR +0x000 NtTib : _NT_TIB +0x01c SelfPcr ...原创 2019-11-02 00:44:08 · 495 阅读 · 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 · 678 阅读 · 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 · 531 阅读 · 0 评论 -
调用门详解
1. 调用门描述符的格式 调用门用于在不同特权级之间实现受控的程序控制转移,通常仅用于使用特权级保护机制的操作系统中。本质上,它只是一个描述符,一个不同于代码段和数据段的描述符,可以安装在GDT或者LGT中,但是不能安装在IDT(中断描述符表)中。 注意:Linux Kernel 0.12 中并没有用到调用门。 上图就是调用门描述符的格式(图片来自赵炯的《Linux内核完全剖析》)。 调用门描...原创 2019-09-25 16:42:39 · 850 阅读 · 0 评论