社区
驱动开发/核心开发
帖子详情
怎么获取DirectoryTableBase (CR3)
xuanze113
2018-06-15 03:46:43
怎么获取DirectoryTableBase (CR3)
除了从eprocess中获取以外。。还有什么获取思路?
谢谢大神们
...全文
1483
2
打赏
收藏
怎么获取DirectoryTableBase (CR3)
怎么获取DirectoryTableBase (CR3) 除了从eprocess中获取以外。。还有什么获取思路? 谢谢大神们
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
刘铠文
2018-07-24
打赏
举报
回复
__readcr3();
跨进程内存读取,附源码定义.pdf
跨进程内存读取,附源码定义.pdf
12.进程挂靠
进程与线程的关系: 一个逃程可以包含多个线程 一个进程至少要有一个线程 进程为线程提供资源,也就是提供
Cr3
的值,
Cr3
中存储的是页目录表基址,
Cr3
确定了,线程能访问的内存也就确定了。 进程与线程的关系 线程代码: mov eax, dword ptr ds:(0x12345678] CPU如何解析0x12345678这个地址呢? CPU解析线性地址时要通过页目录表来找对应的物理页,页目录...
13.跨进程读写内存
跨进程的本质是"进程挂靠”正常情况下, A进程的线程只能访问A进程的地址空间,如果A进程的线程想访问B进程的地址空间,就要修改当前的
Cr3
的值为B进程的页目录表基值(KPROCESS.
Directory
Table
Base
)。 即: mov
cr3
,B.
Directory
Table
Base
跨进程操作 A进制中的线程代码: mov
cr3
,B.
Directory
Table
Base
//切换
Cr3
...
用
cr3
读写内存
#define
DIRECTORY
_
TABLE
_
BASE
0x028 //
Directory
Table
Base
UINT32 idTarget = 0; PEPROCESS epTarget = NULL; UINT32 idGame = 0; PEPROCESS epGame = NULL; UINT32 rw_len = 0; UINT64
base
_addr = 0; ...
进程挂靠 详解
1.进程与线程的关系: 一个进程可以包含多个线程 一个进程至少要有一个线程 进程为线程提供资源,也就是提供
Cr3
的值,
Cr3
中存储的是页目录表基址,
Cr3
确定了,线程能访问的内存也就确定了 线程代码: mov eax,dword ptr ds:[0x12345678] CPU会如何解析这个0x12345678这个地址呢? 1.CPU解析线性地址时通过页目录表来找对应的物理页,页目录表基址存在
Cr3
寄存器中 2.当前的
Cr3
的值来源于当前的进程(_KPROCESS.
Directory
Table
Base
(+0
驱动开发/核心开发
21,616
社区成员
21,711
社区内容
发帖
与我相关
我的任务
驱动开发/核心开发
硬件/嵌入开发 驱动开发/核心开发
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章