
Complemento de Binary Ninja para ingeniería inversa de PTX -- la arquitectura de conjunto de instrucciones virtual de las GPU basadas en CUDA.
Autor: Nicolò Altamura
Explora código PTX a través de Binary Ninja
ptxNinja es un plugin de arquitectura para Binary Ninja orientado a PTX, el lenguaje para la arquitectura virtual de la GPU basada en CUDA. Esto te permite:
El plugin se puede instalar usando el gestor de plugins de Binary Ninja.
Para una instalación manual, sigue estos pasos en la carpeta de 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 usas un entorno virtual, deberás configurar manualmente la ruta de site-packages en los ajustes de Binary Ninja.
Si no estás seguro de por dónde empezar, o nunca has visto un archivo PTX, quizás quieras revisar algunos kernels de ejemplo en el directorio examples/. Estos incluyen:
PTX está basado en un lenguaje de formato de texto y la salida de nvdisasm/cuobjdump ya contiene bastante información que se inserta en los binarios. Trabajar con texto requiere construir una gramática precisa para probar el parser, sin embargo existen algunos límites:
atom) están totalmente soportadascuobjdump/cufilt aún no se aplicaPara más información, contacta con Nicolò Altamura (@nicolodev).