Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
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é.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
pcileech — Logiciel d'attaque par accès direct à la mémoire (DMA) | Kitploit
Outils/GitHubGitHub/ufrisk/pcileech
Escalade de PrivilègesCriminalistique MémoireExploitationPost-ExploitationCriminalistique NumériqueTests d'IntrusionSécurité MatérielleRed TeamingOutil d'Accès à DistanceDéveloppement de Charges Utiles
GitHubufrisk/pcileech
7.9k1.0kil y a 25 joursVérifié par Kitploit

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

pcileech

Logiciel d'attaque par accès direct à la mémoire (DMA)

Voir le dépôt

Résumé de PCILeech :

PCILeech utilise des périphériques matériels PCIe pour lire et écrire la mémoire du système cible. Ceci est réalisé en utilisant le DMA via PCIe. Aucun pilote n'est nécessaire sur le système cible.

PCILeech fonctionne également sans matériel, avec une large gamme de méthodes d'acquisition mémoire logicielles supportées par la bibliothèque LeechCore - y compris la capture de mémoire vive distante à l'aide de DumpIt ou WinPmem. PCILeech supporte également la capture locale de mémoire et un certain nombre de formats de fichiers de dump mémoire.

PCILeech supporte plusieurs dispositifs d'acquisition mémoire. À la fois matériels et logiciels. Le matériel basé sur USB3380 ne peut lire que 4 Go de mémoire nativement, mais peut lire toute la mémoire si un module noyau (KMD) est d'abord inséré dans le noyau du système cible. Le matériel basé sur FPGA et les méthodes logicielles peuvent lire toute la mémoire.

PCILeech est capable d'insérer une large gamme d'implants noyau dans les noyaux ciblés - permettant un accès facile à la RAM vive et au système de fichiers via un « lecteur monté ». Il est également possible de supprimer l'exigence de mot de passe de connexion, de charger des pilotes non signés, d'exécuter du code et de lancer des shells système. PCILeech fonctionne sous Windows et Linux. Les systèmes cibles supportés sont actuellement les versions x64 de : UEFI, Linux, FreeBSD et Windows. Cela nécessite un accès en écriture à la mémoire (matériel USB3380, matériel FPGA, LiveCloudKd ou CVE-2018-1038 « Total Meltdown »).

Pour commencer, clonez les sources du dépôt ou téléchargez les derniers binaires, modules et fichiers de configuration.

Le frontend graphique PushPin pour PCILeech rend les tâches RedTeam courantes super faciles. Notez que PushPin ne fait pas partie de la distribution officielle de PCILeech.

Capacités :

  • Récupérer la mémoire du système cible à >150 Mo/s.
  • Récupérer la mémoire distante depuis LeechService distant.
  • Écrire des données dans la mémoire du système cible.
  • 4 Go de mémoire peuvent être accédés en mode DMA natif (matériel USB3380).
  • TOUTE la mémoire peut être accédée en mode DMA natif (matériel FPGA).
  • TOUTE la mémoire peut être accédée si un module noyau (KMD) est chargé.
  • Accès brut aux TLP PCIe (matériel FPGA).
  • Monter la RAM vive en tant que fichier [Linux, Windows, macOS Sierra*].
  • Monter le système de fichiers en tant que lecteur [Linux, Windows, macOS Sierra*].
  • Exécuter du code noyau sur le système cible.
  • Lancer un shell système et d'autres exécutables [Windows].
  • Tirer et pousser des fichiers [Linux, FreeBSD, Windows, macOS Sierra*].
  • Patcher / Déverrouiller (supprimer l'exigence de mot de passe) [Windows, macOS Sierra*].
  • Facile de créer son propre shellcode noyau et/ou des signatures personnalisées.
  • Se connecter à un LeechAgent distant via le réseau pour à distance :
    • Dumper la mémoire physique sur le réseau.
    • Exécuter des scripts d'analyse mémoire Python sur l'hôte distant.
  • Encore plus de fonctionnalités non listées ici ...

*) macOS High Sierra et versions ultérieures ne sont pas supportés.

Méthodes d'acquisition mémoire :

PCILeech supporte à la fois les méthodes d'acquisition mémoire matérielles et logicielles. Toute l'acquisition mémoire est gérée par la bibliothèque LeechCore.

Méthodes d'acquisition mémoire matérielles :

Veuillez trouver ci-dessous un résumé des méthodes d'acquisition mémoire matérielles supportées. Toutes les méthodes d'acquisition mémoire matérielles sont supportées sur Windows et Linux. Les méthodes basées sur FPGA souffrent cependant d'une légère pénalité de performance sous Linux et culminent à environ 90 Mo/s contre 150 Mo/s sous Windows.

Méthodes d'acquisition mémoire logicielles :

Veuillez trouver ci-dessous un résumé des méthodes d'acquisition mémoire logicielles supportées. Veuillez noter que LeechService fournit uniquement une connexion réseau à une bibliothèque LeechCore distante. Il est possible d'utiliser à la fois l'acquisition mémoire matérielle et logicielle une fois connecté.

Installation de PCILeech :

Veuillez vous assurer que vous disposez de la version la plus récente de PCILeech en visitant le dépôt github PCILeech à l'adresse : https://github.com/ufrisk/pcileech

Obtenez les derniers binaires, modules et fichiers de configuration depuis la dernière version. Alternativement, clonez le dépôt et compilez depuis les sources.

Windows :

Veuillez consulter le guide PCILeech sur Windows pour des informations sur l'exécution de PCILeech sous Windows.

Le pilote USB Google Android doit être installé si un matériel USB3380 est utilisé. Téléchargez le pilote USB Google Android depuis : http://developer.android.com/sdk/win-usb.html#download Décompressez le pilote.
Les pilotes FTDI doivent être installés si un FPGA est utilisé avec la carte d'extension USB3 FT601 ou PCIeScreamer. Téléchargez la version 64 bits FTD3XX.dll depuis FTDI et placez-la à côté de pcileech.exe.
Pour monter la RAM vive et le système de fichiers cible en tant que lecteur sous Windows, la bibliothèque de système de fichiers Dokany2 doit être installée. Veuillez télécharger et installer la dernière version stable de Dokany2 à l'adresse : https://github.com/dokan-dev/dokany/releases/latest

Linux :

Veuillez consulter le guide PCILeech sur Linux pour des informations sur l'exécution de PCILeech sous Linux.

Exemples :

Veuillez consulter les pages wiki du projet pour plus d'exemples. Le wiki est en phase de construction et des informations peuvent encore manquer.

Monter la RAM vive et le système de fichiers du système cible, nécessite qu'un KMD soit chargé. Dans cet exemple, 0x11abc000 est utilisé.

  • pcileech.exe mount -kmd 0x11abc000

Afficher l'aide pour un implant noyau spécifique, dans ce cas l'implant noyau lx64_filepull.

  • pcileech.exe lx64_filepull -help

Afficher l'aide pour la commande dump.

  • pcileech.exe dump -help

Dumper toute la mémoire du système cible à condition qu'un module noyau soit chargé à l'adresse : 0x7fffe000.

  • pcileech.exe dump -kmd 0x7fffe000

Forcer le dump de la mémoire en dessous de 4 Go, y compris les périphériques mappés en mémoire accessibles, en utilisant l'approche USB2 plus stable sur USB3380.

  • pcileech.exe dump -force -device usb3380://usb=2

Recevoir des TLP PCIe (Paquets de couche de transaction) et les afficher à l'écran (carte de développement FPGA correctement configurée requise).

  • pcileech.exe tlp -vv -wait 1000

Sonder/Énumérer la mémoire du système cible pour les pages mémoire lisibles et la mémoire maximale. (Matériel FPGA uniquement).

  • pcileech.exe probe

Dumper toute la mémoire entre les adresses min et max, ne pas s'arrêter en cas d'échec sur les pages. L'accès natif à la mémoire 64 bits n'est supporté que sur le matériel FPGA.

  • pcileech.exe dump -min 0x0 -max 0x21e5fffff -force

Dumper toute la mémoire, essayer de localiser la carte mémoire à partir du registre du système cible pour éviter de dumper une mémoire potentiellement invalide qui pourrait bloquer la cible.

  • pcileech.exe dump -memmap auto

Forcer l'utilisation d'un dispositif spécifique (au lieu de la détection automatique par défaut). Le périphérique pmem n'est pas détecté automatiquement.

  • pcileech.exe pagedisplay -min 0x1000 -device pmem

Dumper la mémoire distante depuis un LeechAgent distant en utilisant une connexion chiffrée et mutuellement authentifiée par Kerberos.

  • pcileech.exe dump -device pmem -remote rpc://[email protected]

Exécuter le script d'analyse Python find-rwx.py sur un ordinateur distant en utilisant l'environnement Python intégré de LeechAgent.

  • pcileech.exe agent-execpy -in find-rwx.py -device pmem -remote rpc://[email protected]

Patcher la mémoire virtuelle du processus de pid 432 (lsass.exe dans cet exemple).

  • pcileech.exe patch -pid 432 -sig unlock_win10x64.sig

Limitations/Problèmes connus :

  • Ne fonctionne pas si le système d'exploitation utilise l'IOMMU/VT-d. C'est le cas par défaut sur macOS (sauf si désactivé en mode de récupération). Windows 10/11 avec les fonctionnalités de sécurité basées sur la virtualisation activées ne fonctionne pas complètement.
  • Les versions récentes de Windows et Linux bloquent le DMA par défaut.

Communauté PCILeech et MemProcFS :

Tout cela vous semble un peu écrasant ? Ou vous voulez juste poser une question rapide ? Rejoignez le serveur communautaire DMA PCILeech et MemProcFS sur Discord !

Compilation :

Les binaires se trouvent dans la section des versions de ce dépôt. Si l'on souhaite compiler sa propre version, c'est possible. Veuillez consulter PCILeech sur Windows ou PCILeech sur Linux pour plus d'informations sur la compilation de PCILeech. PCILeech dépend également de LeechCore et optionnellement (pour certaines fonctionnalités supplémentaires) de The Memory Process File System, qui doivent tous deux être compilés séparément.

Contribuer :

PCILeech, MemProcFS et LeechCore sont open source mais pas ouverts aux contributions. PCILeech, MemProcFS et LeechCore offrent une architecture de plugins très flexible qui permet des contributions sous forme de plugins. Si vous souhaitez apporter une contribution, autre qu'un plugin, aux projets principaux, veuillez me contacter avant de commencer à développer.

Liens :

  • Twitter : Twitter
  • Discord : Discord - PCILeech/MemProcFS
  • PCILeech : https://github.com/ufrisk/pcileech
  • PCILeech FPGA : https://github.com/ufrisk/pcileech-fpga
  • LeechCore : https://github.com/ufrisk/LeechCore
  • MemProcFS : https://github.com/ufrisk/MemProcFS
  • Blog : http://blog.frizk.net
  • PushPin : interface graphique pour PCILeech : https://github.com/LuckyPi/PushPin

Journal des modifications :

Versions précédentes (cliquez pour développer) :

v1.0-v3.6

  • Version initiale et diverses mises à jour. Veuillez consulter les versions individuelles pour plus d'informations.

v4.0

  • Nettoyage majeur et refontes internes.
  • Détection automatique de la mémoire maximale FPGA et stratégie de dump plus stable.
  • Nouvelles injections noyau Windows 10 stables avec matériel FPGA sur systèmes de sécurité non basés sur la virtualisation.
  • Injections en mode utilisateur (expérimental).
  • Suppression du support de périphérique intégré - la bibliothèque LeechCore leechcore.dll/leechcore.so est maintenant utilisée à la place. Les nouveaux périphériques incluent :
    • Fichiers de dump mémoire (fichiers de dump linéaires bruts et fichiers de dump d'arrêt Microsoft).
    • Fichiers de sauvegarde Hyper-V.
    • Mémoire vive via DumpIt / WinPmem.
    • Périphériques distants via le paramètre -remote.
  • Suppression de l'API et du Memory Process File System intégré - veuillez utiliser les API plus puissantes dans LeechCore et Memory Process File System à la place.
  • De nombreux autres changements et mises à jour de syntaxe.

v4.1

  • Support de LeechAgent - acquisition et analyse mémoire à distance.

v4.2

  • Mises à jour des signatures :
    • Module noyau Linux - LINUX_X64_48 (dernières versions)
    • Module noyau Win10 1903 - WIN10_X64_2 (nécessite la version Windows de PCILeech)

v4.3

  • Corrections de bugs.
  • Support d'un nouveau périphérique (NeTV2 / RawUDP) via la bibliothèque LeechCore.

v4.4

  • Corrections de bugs et améliorations de stabilité.

v4.10

  • Support Linux pour les signatures intégrées Windows 10 (dépendance à MemProcFS v4.0).
  • Versions séparées pour Windows et Linux.
  • Nettoyage général.

v4.11

  • Support de la mémoire VM vive de VMWare Workstation/Player.
  • Support de l'analyse mémoire à distance avec la commande LeechAgent agent-forensic.
    • Exécute le mode médico-légal de MemProcFS à distance.
    • Récupère des données JSON compatibles ElasticSearch.

v4.12

  • Support 32 bits (binaire pcileech).

v4.13

  • Corrections de bugs.
  • Améliorations du montage :
    • Support du système de fichiers hôte Windows : Mise à niveau vers Dokany2 (NB ! Dokany2 devra être installé !).
    • Support du système de fichiers hôte Linux : Ajout du support FUSE.
      Exemple : ./pcileech mount /home/user/fusemnt/leechfs -kmd <your_kmd_address>
    • Désormais possible d'accéder à d'autres lecteurs locaux que C: sur les cibles Windows.
  • Support de Visual Studio 2022.

v4.14

  • Support de la mémoire virtuelle des processus (Windows uniquement).
    • Commandes : search, patch, write, display, pagedisplay
    • Exemple : pcileech patch -pid 732 -sig unlock_win10x64.sig

v4.15

  • Support de MemProcFS v5.0

v4.16

  • Améliorations des performances FPGA.
  • Commande none ajoutée.
  • Options -bar-ro et -bar-rw ajoutées.

v4.17

  • Support des BAR d'E/S.
  • Améliorations Linux :
    • Mise à jour de la signature KMD (LINUX_X64_48) pour supporter les derniers noyaux Ubuntu.
    • Mise à jour des modules noyau pour supporter les derniers noyaux.
    • Nouvelle signature KMD - LINUX_X64_MAP - spécifier le System.map du noyau du système cible dans l'option -in.
    • Nouveau module noyau : lx64_exec_root.
  • Améliorations des performances PCIe FPGA sous Linux.v4.18
  • Commande de benchmark ajoutée.
  • Signatures de déverrouillage mises à jour.
  • Option -psname ajoutée.

v4.19

  • Améliorations de la stabilité sous Linux et améliorations du chargement du module noyau.
  • Prise en charge de la compilation clang sous Linux.
  • Prise en charge de macOS.

Dernières :

  • Correctifs de bugs.
  • Prise en charge de LeechAgent sous Linux via gRPC (LeechCore v2.21).
  • Ajout : option -no-kmd-mem pour désactiver optionnellement l'accès mémoire KMD lorsque KMD est chargé (peut être utile pour des raisons de stabilité dans certains cas).
  • Ajout : -kmd WIN11_X64 - signature KMD pour Windows 11 (alias pour WIN10_X64_3).
Télécharger l’outil
AppareilTypeInterfaceVitesseAccès mémoire 64 bitsAccès TLP PCIeSponsor du projet
ZDMAFPGAThunderbolt31000MB/sOuiOui💖
GBOXFPGAOCuLink400MB/sOuiOui💖
LeetDMAFPGAUSB-C190MB/sOuiOui💖
CaptainDMA M2FPGAUSB-C190MB/sOuiOui💖
CaptainDMA M2 100TFPGAUSB-C220MB/sOuiOui💖
CaptainDMA 4.1thFPGAUSB-C190MB/sOuiOui💖
CaptainDMA 75TFPGAUSB-C200MB/sOuiOui💖
CaptainDMA 100TFPGAUSB-C220MB/sOuiOui💖
AC701/FT601FPGAUSB3190MB/sOuiOui
USB3380-EVBUSB3380USB3150MB/sNonNon
DMA patched HP iLOBMCTCP1MB/sOuiNon
AppareilTypeVolatileÉcritureSupport LinuxPlugin
RAW physical memory dumpFichierNonNonOuiNon
Full Microsoft Crash DumpFichierNonNonOuiNon
Full ELF Core DumpFichierNonNonOuiNon
VMwareMémoire viveOuiOuiNonNon
VMware memory save fileFichierNonNonOuiNon
TotalMeltdownCVE-2018-1038OuiOuiNonNon
DumpIt /LIVEKDMémoire viveOuiNonNonNon
WinPMEMMémoire viveOuiNonNonNon
LiveKdMémoire viveOuiNonNonNon
LiveCloudKdMémoire viveOuiOuiNonOui
Hyper-V Saved StateFichierNonNonNonOui
LeechAgent*DistantNonNon
  • Support de la bibliothèque MemProcFS v3.
  • Signature de code des binaires.
  • Commande tlploop.
  • v4.5

    • Corrections de bugs.
    • Support de la v2 de la bibliothèque d'acquisition mémoire LeechCore.
    • Intégration de MemProcFS lors de l'exécution sous Windows.
    • Support de la carte mémoire physique définie par l'utilisateur (option -memmap).

    v4.6

    • Support de LiveCloudKd.

    v4.7

    • Corrections de bugs.
    • WIN10_X64_3 nouvelle signature noyau stable pour Windows 10 - incluant la version Win10 2004.
    • Mises à jour des signatures de déverrouillage - Win10/Linux (NB ! les noyaux les plus récents sous Linux ne sont pas encore supportés).

    v4.8

    • Corrections de bugs.
    • Meilleur support pour les noyaux Linux x64 récents.

    v4.9

    • Corrections de bugs.
    • Mises à jour des signatures.
    • Meilleur support pour les noyaux Linux x64 récents (Ubuntu 21.04).
    • Démontage du pilote monté lorsque CTRL+C est pressé.