.pyi Generator Ghidra .pyi menghasilkan stubs .pyi tipe untuk seluruh API Ghidra. File -file rintisan itu kemudian dapat digunakan di Pycharm untuk meningkatkan pengalaman pengembangan.
Anda dapat menggunakan stub yang dirilis di sini, atau mengikuti instruksi di bawah ini untuk menghasilkannya sendiri.
Rilis ini berisi paket Pep 561 Stub, yang dapat dengan mudah diinstal dengan pip install ghidra-stubs*.whl ke lingkungan di mana modul ghidra asli tersedia. Alat yang sesuai kemudian akan menggunakan paket stub untuk tujuan analisis tipe.
Jika Anda ingin menambahkan file rintisan secara manual ke Pycharm, ikuti instruksi di Install, Uninstall, dan Tingkatkan Jalur Interpreter.
Setelah terpasang, yang perlu Anda lakukan adalah mengimpor modul Ghidra seperti biasa, dan Pycharm akan melakukan sisanya.
import ghidra Untuk mendapatkan dukungan untuk Ghidra Buildins, Anda perlu mengimpornya juga. Jenisnya mengisyaratkan yang ada di rintisan yang dihasilkan ghidra_builtins.pyi . Karena ini bukan modul Python nyata, mengimpornya saat runtime akan gagal. Tapi .pyi memberi Pycharm semua informasi yang dibutuhkan untuk membantu Anda.
try :
from ghidra . ghidra_builtins import *
except :
pass Jika Anda menggunakan Ghidra_Bridge dari lingkungan Python 3 di mana tidak ada modul ghidra yang sebenarnya, Anda dapat menggunakan cuplikan seperti berikut:
import typing
if typing . TYPE_CHECKING :
import ghidra
from ghidra . ghidra_builtins import *
else :
b = ghidra_bridge . GhidraBridge ( namespace = globals ())
# actual code follows here typing.TYPE_CHECKING adalah nilai khusus yang selalu False saat runtime tetapi True selama jenis pemeriksaan atau penyelesaian jenis apa pun.
Setelah selesai, cukup kode & nikmati.

Untuk mengekstrak semua jenis dari Ghidra dengan benar, pastikan untuk mengekstrak dokumentasi API.
Help -> Ghidra API Help Script tergantung pada paket attr dan typing . Mereka sekarang dibantah di bawah direktori vendor karena dukungan Python2.7 secara bertahap dijatuhkan dari ekosistem, membuatnya sulit untuk menginstal dan mengambil paket.
# Create Jython's site-pacakges directory.
jython_site_packages= ~ /.local/lib/jython2.7/site-packages
mkdir -p $jython_site_packages
# Create a PTH file to point Jython to our vendored site-packages
# Outside a virtualenv, use
echo " $( realpath ./vendor ) " > $jython_site_packages /python.pth
.pyiScript Directories di manajer skrip ghidragenerate_ghidra_pyi.py (akan berlokasi di bawah IDE Helpers ).pyi . $GHIDRA_ROOT /support/analyzeHeadless /tmp tmp -scriptPath $( pwd ) -preScript generate_ghidra_pyi.py ./ generate_ghidra_pyi.py menghasilkan setup.py di dalam direktori yang dipilih.
Hal ini memungkinkan menggunakan pip install untuk menginstal paket Stub Pep 561 yang dikenali oleh Pycharm dan alat -alat lain yang berisi informasi jenis untuk modul GHIDRA.