
Plugin Binary Ninja pour le reverse engineering de PTX -- l'architecture de jeu d'instructions virtuelle des GPU basés sur CUDA.
Auteur : Nicolò Altamura
Explorez le code PTX via Binary Ninja
ptxNinja est un plugin d'architecture pour Binary Ninja ciblant PTX, le langage de l'architecture virtuelle des GPU basés sur CUDA. Cela vous permet de :
Le plugin peut être installé via le gestionnaire de plugins de Binary Ninja.
Pour une installation manuelle, suivez ces étapes dans le dossier des plugins de Binary Ninja :
git clone https://github.com/seekbytes/ptxninja.git
cd ptxninja
# optionally: use a virtual environment
python -m venv ptxninja-env
source ptxninja-env/bin/activate
# install requirements
pip install ptx-parser
Si vous utilisez un environnement virtuel, vous devrez définir manuellement le chemin site-packages dans les paramètres de Binary Ninja.
Si vous ne savez pas par où commencer, ou si vous n'avez jamais vu de fichier PTX, vous pouvez consulter quelques kernels d'exemple dans le répertoire examples/. Ceux-ci incluent :
PTX est basé sur un langage au format texte et la sortie de nvdisasm/cuobjdump contient déjà beaucoup d'informations insérées dans les binaires. Traiter du texte nécessite de construire une grammaire précise pour tester le parseur, cependant il existe certaines limites :
atom) ne sont pas entièrement prises en chargecuobjdump/cufilt n'est pas encore appliquéPour plus d'informations, contactez Nicolò Altamura (@nicolodev).