Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
PTM — Bibliothèque C++ permettant de manipuler les tables de pagination x86-64 depuis le mode utilisateur : lire/écrire les entrées PML4E, PDPTE, PDE et PTE, traduire les adresses virtuelles en adresses physiques et construire des tables auto-référençantes. | Kitploit
Outils/GitHubGitHub/gmh5225/ptm
Escalade de PrivilègesCriminalistique MémoireExploitationRétro-ingénieriePost-ExploitationExploitation de Binaires
GitHubgmh5225/ptm

PTM

Bibliothèque C++ permettant de manipuler les tables de pagination x86-64 depuis le mode utilisateur : lire/écrire les entrées PML4E, PDPTE, PDE et PTE, traduire les adresses virtuelles en adresses physiques et construire des tables auto-référençantes.

Voir le dépôt
312il y a 4 ansPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Site web

_xeroxz's PTM - Manipulation des tables de pages depuis le mode utilisateur

manipulation des tables de pages depuis le mode utilisateur. des opérations telles que l'obtention et la définition de toutes les entrées et valeurs des tables de pages sont proposées. le code prend en compte les grandes pages. Le lien vers l'article se trouve ici.

exemple

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...

manipulation des entrées de table

  • obtenir/définir les pml4e
  • obtenir/définir les pdpte
  • obtenir/définir les pde
  • obtenir/définir les pte

manipulation des tables

  • copier la table
  • créer une table auto-référencée.

mémoire virtuelle

  • convertir les adresses virtuelles en adresses physiques
  • obtenir les entrées de table pour une adresse donnée
  • modifier les entrées de table pour une adresse donnée

crédits

  • buck#0001 - inspiration pour la majeure partie de ceci.
  • Ch40zz - m'a aidé à relier les points.

travaux connexes

  • PSKP
  • PTEditor
  • PSKDM
  • reverse-injector
  • pclone
Télécharger l’outil