
Плагин Binary Ninja для реверс-инжиниринга PTX — виртуальной архитектуры набора инструкций CUDA-совместимых GPU.
Автор: Nicolò Altamura
Исследуйте код PTX с помощью Binary Ninja
ptxNinja — это плагин архитектуры для Binary Ninja, ориентированный на PTX, язык виртуальной архитектуры GPU на базе CUDA. Это позволяет вам:
Плагин можно установить с помощью менеджера плагинов Binary Ninja.
Для ручной установки выполните следующие шаги в папке плагинов 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
Если вы используете виртуальное окружение, вам нужно вручную указать путь к site-packages в настройках Binary Ninja.
Если вы не уверены, с чего начать, или никогда не видели файл PTX, возможно, вам стоит посмотреть на некоторые учебные ядра в директории examples/. К ним относятся:
PTX основан на текстовом формате языка, и вывод nvdisasm/cuobjdump уже содержит множество информации, которая вставляется в бинарные файлы. Работа с текстом требует построения точной грамматики для тестирования парсера, однако есть некоторые ограничения:
atom) полностью поддерживаютсяcuobjdump/cufilt пока не применяетсяДля получения дополнительной информации свяжитесь с Nicolò Altamura (@nicolodev).