
إضافة Binary Ninja لهندسة عكسية لـ PTX -- بنية مجموعة التعليمات الافتراضية لوحدات معالجة الرسومات القائمة على CUDA.
المؤلف: 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).