
aide à visualiser les opérations sur le tas pour le pwn et le débogage
heaptrace est un débogueur de tas pour suivre les opérations du tas glibc dans les binaires ELF64 (x86_64). Son but est de visualiser les opérations du tas lors du débogage de binaires ou de la réalisation de heap pwn.

--break)Quelle est la différence entre heaptrace et valgrind ?
Voir les fichiers .deb et .rpm des versions, ainsi qu'un binaire pré-compilé sur la page des versions.
$ sudo add-apt-repository ppa:arinerron/heaptrace
$ sudo apt-get update
$ sudo apt-get install heaptrace
Utilisez votre assistant AUR préféré pour installer l'un des deux paquets suivants :
heaptrace-git — paquet source (PKGBUILD)heaptrace — paquet binaire (PKGBUILD)$ trizen -S heaptrace-git
... OU ...
$ trizen -S heaptrace
$ git clone https://github.com/Arinerron/heaptrace.git && cd heaptrace
$ make
$ sudo make install
...
$ heaptrace ./target
Vous pouvez spécifier des arguments à heaptrace avant de spécifier le nom du binaire :
Usage:
heaptrace [options...] <target> [args...]
heaptrace [options...] --attach <pid>
Options:
-p <pid>, --attach <pid>, --pid <pid>
Indique à heaptrace de s'attacher au pid spécifié
au lieu d'exécuter le binaire à partir de l'argument
`target`. Notez que si vous spécifiez cet argument,
vous n'avez pas besoin de spécifier `target`.
-b <expression>, --break=<expression>, --break-at=<expression>
Envoie SIGSTOP au processus lorsque l'`expression`
spécifiée est satisfaite et attache le débogueur GNU
(gdb) au processus.
Cet argument prend en charge les expressions complexes.
Veuillez consulter la documentation pour plus d'informations :
https://github.com/Arinerron/heaptrace/wiki/How-to-Create-Breakpoints
-B <expression>, --break-after=<expression>
Similaire à `--break`. Remplace le processus traceur
par gdb, mais seulement après le retour de la fonction
de tas. Voir la documentation pour plus d'informations :
https://github.com/Arinerron/heaptrace/wiki/How-to-Create-Breakpoints
-e <name=value>, --environ=<name=value>, --environment=<name=value>
Définit une seule variable d'environnement. Utile pour
définir des paramètres d'exécution pour la cible tels que
LD_PRELOAD=./libc.so.6 sans qu'ils affectent la configuration
d'exécution de heaptrace. Cette option peut être utilisée
plusieurs fois.
-s <sym_defs>, --symbols=<sym_defs>
Remplace les valeurs détectées par heaptrace pour les
symboles malloc/calloc/free/realloc/reallocarray. Utile
si heaptrace ne parvient pas à identifier automatiquement
les fonctions de tas dans un binaire élagué. Voir le wiki
pour plus d'informations.
-F, --follow-fork, --follow
Indique à heaptrace de détacher le parent et de suivre
l'enfant si la cible appelle fork(), vfork() ou clone().
Le comportement par défaut est de détacher l'enfant et
de tracer uniquement le parent.
-G <path>, --gdb-path <path>
Indique à heaptrace d'utiliser le chemin vers gdb spécifié
dans `path` au lieu de /usr/bin/gdb (par défaut).
-w <width>, --width=<width>, --term-width=<width>
Force une certaine largeur de terminal.
-o <file>, --output=<file>
Écrit la sortie de heaptrace dans `file` au lieu de
/dev/stderr (qui est le chemin de sortie par défaut).
-v, --verbose
Affiche des informations détaillées telles que les numéros
de ligne dans le code source à condition que les informations
de débogage nécessaires soient stockées dans l'ELF.
-V, --version
Affiche la version actuelle de heaptrace.
-h, --help
Affiche ce menu d'aide.
heaptrace --break=3 ./my-binary. Veuillez consulter la documentation du wiki pour plus d'informations sur l'utilisation de cet argument.-s/--symbol pour déboguer les binaires élagués dans lesquels heaptrace n'a pas réussi à identifier automatiquement les fonctions.$NO_COLOR pour supprimer les codes de couleur ANSI de la sortie. Cette option est encore en développement et sera bientôt convertie en un argument.Je serai ravi de vous aider si vous rencontrez un bogue ou avez des commentaires. Veuillez consulter la page des Problèmes GitHub.