
Binary-Ninja-Plugin für das Reverse Engineering von PTX – der virtuellen Befehlssatzarchitektur CUDA-basierter GPUs.
Autor: Nicolò Altamura
Erkunden Sie PTX-Code mit Binary Ninja
ptxNinja ist ein Architektur-Plugin für Binary Ninja, das auf PTX abzielt, die Sprache für die virtuelle Architektur von CUDA-basierten GPUs. Dies ermöglicht Ihnen:
Das Plugin kann über den Plugin-Manager von Binary Ninja installiert werden.
Für eine manuelle Installation folgen Sie diesen Schritten im Plugin-Ordner von 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
Wenn Sie eine virtuelle Umgebung verwenden, müssen Sie den site-packages-Pfad manuell in den Binary-Ninja-Einstellungen festlegen.
Wenn Sie nicht sicher sind, wo Sie anfangen sollen, oder noch nie eine PTX-Datei gesehen haben, sollten Sie sich einige Beispiel-Kernel im Verzeichnis examples/ ansehen. Dazu gehören:
PTX basiert auf einem Textformat, und die Ausgabe von nvdisasm/cuobjdump enthält bereits viele Informationen, die in die Binärdateien eingefügt werden. Der Umgang mit Text erfordert den Aufbau einer präzisen Grammatik zum Testen des Parsers, jedoch gibt es einige Einschränkungen:
atom) werden vollständig unterstütztcuobjdump/cufilt-Verschönerung wird noch nicht angewendetFür weitere Informationen kontaktieren Sie Nicolò Altamura (@nicolodev).