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

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

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
shadow — framework d'exploitation du heap jemalloc | Kitploit
Outils/GitHubGitHub/census/shadow
Criminalistique MémoireExploitationRétro-ingénierieDébogueursExploitation de Binaires
GitHubcensus/shadow

shadow

framework d'exploitation du heap jemalloc

Voir le dépôt
4697125il y a 4 ansVé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

shadow :: De Mysteriis Dom jemalloc

shadow est un framework d'exploitation du tas jemalloc. Il a été conçu pour être agnostique de l'application cible qui utilise jemalloc comme allocateur de tas (que ce soit la libc d'Android, Firefox, la libc de FreeBSD, jemalloc autonome, ou autre). La version actuelle (2.0) a été testée de manière approfondie avec les cibles suivantes :

  • Android 6-9 libc (ARM32 et ARM64)
  • Firefox (x86 et x86-64) sous Windows et Linux

Outre le code source de l'outil, ce dépôt comprend également de la documentation sur la mise en place d'un environnement de débogage userland Android pour utiliser shadow, un aperçu rapide des structures jemalloc d'Android à l'aide de shadow, et quelques notes sur la manière dont les bugs de double libération, de libération non alignée et de libération arbitraire se comportent sur le jemalloc d'Android.

Utilisation

Lorsque vous émettez une commande spécifique à jemalloc pour la première fois, shadow analyse toutes les métadonnées jemalloc qu'il connaît et les enregistre dans un fichier pickle Python. Les commandes suivantes utilisent ce fichier pickle au lieu de ré-analyser les métadonnées à partir de la mémoire pour être plus rapides.

Lorsque vous savez que l'état des métadonnées jemalloc a changé (par exemple lorsque vous avez effectué des allocations ou déclenché un garbage collection), utilisez la commande jeparse pour ré-analyser les métadonnées et recréer le fichier pickle.

Installation sur Android

La première étape consiste à installer pyrsistence sur votre machine hôte.

Sur un appareil rooté, faites ce qui suit :

host$ adb shell
phone$ su root
phone# ps -e

À partir de la sortie de ps, sélectionnez un processus, par exemple com.google.process.gapps :

...
u0_a19    4679  3214  1668980 69216 SyS_epoll_ 7fa5f41430 S com.google.process.gapps
...
phone$ cd /data/local/tmp
phone$ ./gdbserver64 :5039 --attach 4679

Vous pouvez trouver les binaires du serveur GDB pour ARM32 et ARM64 dans le répertoire "bin". Ou, si vous ne nous faites pas confiance, faites :

host$ git clone http://android.googlesource.com/toolchain/gdb
host$ cd ./gdb/gdb-7.11
host$ mkdir build64; cd build64
host$ ../configure --program-prefix=aarch64-eabi-linux- --target=aarch64-eabi-linux --disable-werror
host$ make
host$ sudo make install

Ensuite, sur la machine hôte, faites :

host$ adb forward tcp:5039 tcp:5039
host$ aarch64-eabi-linux-gdb
(gdb) target remote :5039
(gdb) source /dir/with/shadow/gdb_driver.py
(gdb) jeparse -c /dir/with/shadow/cfg/android7_64.cfg
(gdb) jeruns -c

Parfois, le serveur GDB cesse d'écouter si vous mettez trop de temps à émettre la commande target remote :5039. Donc, si vous voyez des erreurs étranges lorsque vous émettez la commande jeparse, recommencez depuis le début.

Installation sur Windows/Firefox

shadow pour Windows/Firefox a été testé avec les éléments suivants :

  • Windows 8.1 et 10 x86-64
  • Windows 7 SP1 x86 et x86-64
  • Diverses versions de WinDBG
  • pykd version 0.3.2.8
  • De nombreuses versions différentes de Firefox (à la fois x86-64 et x86), y compris la dernière stable (55.0)

Remarque : Si vous travaillez avec une version de Firefox antérieure à 36.0, utilisez la branche mozjs !

Vous devez d'abord configurer WinDBG avec [le serveur de symboles de Mozilla] (https://developer.mozilla.org/fr/docs/Using_the_Mozilla_symbol_server). Vous devez également installer pykd. Copiez ensuite le répertoire shadow que vous avez cloné depuis GitHub dans un chemin (par exemple C:\tmp\).

Vous trouverez également un exemple de script d'initialisation WinDBG dans le fichier "windbg-init.cmd". Placez-le dans C:\tmp\ et démarrez WinDBG avec windbg.exe -c "$$>< C:\tmp\windbg-init.cmd".

Enfin, depuis WinDBG, émettez les commandes suivantes :

!load pykd.pyd
!py c:\\tmp\\shadow\\pykd_driver help

[shadow] De Mysteriis Dom jemalloc
[shadow] shadow v2.0
[shadow] Firefox v56.0a1 (x86-64)
Télécharger l’outil