
Plugin Binary Ninja para engenharia reversa de PTX -- a arquitetura de conjunto de instruções virtual de GPUs baseadas em CUDA.
Autor: Nicolò Altamura
Explore o código PTX através do Binary Ninja
ptxNinja é um plugin de arquitetura para o Binary Ninja voltado ao PTX, a linguagem para a arquitetura virtual de GPU baseada em CUDA. Isso permite que você:
O plugin pode ser instalado usando o gerenciador de plugins do Binary Ninja.
Para uma instalação manual, siga estes passos na pasta de plugins do Binary Ninja:
git clone https://github.com/seekbytes/ptxninja.git
cd ptxninja
# opcionalmente: use um ambiente virtual
python -m venv ptxninja-env
source ptxninja-env/bin/activate
# instale os requisitos
pip install ptx-parser
Se você usar um ambiente virtual, precisará definir manualmente o caminho de site-packages nas configurações do Binary Ninja.
Se você não tem certeza de por onde começar, ou nunca viu um arquivo PTX, talvez queira conferir alguns kernels de exemplo no diretório examples/. Estes incluem:
O PTX é baseado em uma linguagem de formato de texto e a saída do nvdisasm/cuobjdump já possui muitas informações que são inseridas nos binários. Lidar com texto exige a construção de uma gramática precisa para testar o parser, no entanto existem algumas limitações:
atom) são totalmente suportadascuobjdump/cufilt ainda não é aplicadaPara mais informações, entre em contato com Nicolò Altamura (@nicolodev).