
Plugin Binary Ninja per il reverse engineering di PTX -- l'architettura di instruction set virtuale delle GPU basate su CUDA.
Autore: Nicolò Altamura
Esplora il codice PTX attraverso Binary Ninja
ptxNinja è un plugin di architettura per Binary Ninja che supporta PTX, il linguaggio per l'architettura virtuale delle GPU basate su CUDA. Questo ti permette di:
Il plugin può essere installato utilizzando il gestore di plugin di Binary Ninja.
Per un'installazione manuale, segui questi passaggi nella cartella dei plugin di 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
Se utilizzi un ambiente virtuale, dovrai impostare manualmente il percorso site-packages nelle impostazioni di Binary Ninja.
Se non sei sicuro da dove iniziare, o non hai mai visto un file PTX, potresti voler dare un'occhiata ad alcuni kernel di esempio nella directory examples/. Questi includono:
PTX è basato su un linguaggio in formato testuale e l'output di nvdisasm/cuobjdump contiene già molte informazioni che vengono inserite nei binari. Gestire il testo richiede la costruzione di una grammatica precisa per testare il parser, tuttavia ci sono alcuni limiti:
atom) sono completamente supportatecuobjdump/cufilt non è ancora applicataPer ulteriori informazioni, contatta Nicolò Altamura (@nicolodev).