Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
PTM — 用于在用户模式下操作 x86-64 分页表的 C++ 库:读写 PML4E、PDPTE、PDE 和 PTE 表项,将虚拟地址转换为物理地址,并构建自引用表。 | Kitploit
工具/GitHubGitHub/gmh5225/ptm
权限提升内存取证漏洞利用逆向工程后渗透利用二进制利用
GitHubgmh5225/ptm

PTM

用于在用户模式下操作 x86-64 分页表的 C++ 库:读写 PML4E、PDPTE、PDE 和 PTE 表项,将虚拟地址转换为物理地址,并构建自引用表。

查看仓库
3124年前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
网站

_xeroxz 的 PTM - 从用户模式进行页表操作

从用户模式进行页表操作。提供获取和设置所有页表项及值的操作。代码能够识别大页。文章链接可在此处找到。

示例

vdm::read_phys_t _read_phys = 
	[&](void* addr, void* buffer, std::size_t size) -> bool
{
	return vdm::read_phys(addr, buffer, size);
};

vdm::write_phys_t _write_phys =
	[&](void* addr, void* buffer, std::size_t size) -> bool
{
	return vdm::write_phys(addr, buffer, size);
};

vdm::vdm_ctx vdm(_read_phys, _write_phys);
nasa::mem_ctx my_proc(vdm);

const auto ntoskrnl_base =
    reinterpret_cast<void*>(
	    util::get_kmodule_base("ntoskrnl.exe"));

const auto ntoskrnl_pde = my_proc.get_pde(ntoskrnl_base);
std::printf("[+] pde.present -> %d\n", ntoskrnl_pde.second.present);
std::printf("[+] pde.pfn -> 0x%x\n", ntoskrnl_pde.second.pfn);
std::printf("[+] pde.large_page -> %d\n", ntoskrnl_pde.second.large_page);
[+] pde.present -> 1
[+] pde.pfn -> 0x10400
[+] pde.large_page -> 1
[+] press any key to close...

表项操作

  • 获取/设置 pml4e
  • 获取/设置 pdpte
  • 获取/设置 pde
  • 获取/设置 pte

表操作

  • 复制表
  • 创建自引用表。

虚拟内存

  • 将虚拟地址转换为物理地址
  • 获取给定地址的表项
  • 更改给定地址的表项

致谢

  • buck#0001 - 本项目的多数灵感来源。
  • Ch40zz - 帮助我理清思路。

相关工作

  • PSKP
  • PTEditor
  • PSKDM
  • reverse-injector
  • pclone
下载工具