.pyi El generador Ghidra .pyi genera Stubs de tipo .pyi para toda la API de Ghidra. Esos archivos de Stub se pueden usar más tarde en Pycharm para mejorar la experiencia de desarrollo.
Puede usar los trozos lanzados aquí o seguir las instrucciones a continuación para generarlos usted mismo.
La versión contiene el paquete PEP 561 Stub, que simplemente se puede instalar con pip install ghidra-stubs*.whl en el entorno en el que está disponible el módulo ghidra real. Cualquier herramienta de conformidad usará el paquete STUB para fines de análisis de tipo.
Si desea agregar manualmente los archivos STUB a PyCharm, siga las instrucciones en la instalación, desinstalación y actualización de rutas de intérpretes.
Una vez instalado, todo lo que necesita hacer es importar los módulos Ghidra como de costumbre, y Pycharm hará el resto.
import ghidra Para obtener apoyo para los Ghidra Builtin, también debe importarlos. El tipo de sugerencias para los que existen en el stub ghidra_builtins.pyi generado. Dado que no es un módulo de Python real, importarlo en tiempo de ejecución fallará. Pero el .pyi le da a Pycharm toda la información que necesita para ayudarlo.
try :
from ghidra . ghidra_builtins import *
except :
pass Si está utilizando Ghidra_Bridge de un entorno Python 3 donde no existe un módulo ghidra real, puede usar un fragmento como el siguiente:
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 False True
Una vez hecho, solo codifique y disfrute.

Para extraer correctamente todos los tipos de Ghidra, asegúrese de extraer la documentación de la API.
Help -> Ghidra API Help El script depende tanto de los paquetes attr como typing . Ahora se venden bajo el directorio vendor , ya que el soporte Python2.7 se elimina gradualmente del ecosistema, lo que dificulta la instalación y obtenga paquetes.
# 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 en el administrador de guiones de Ghidragenerate_ghidra_pyi.py (se ubicará bajo IDE Helpers ).pyi . $GHIDRA_ROOT /support/analyzeHeadless /tmp tmp -scriptPath $( pwd ) -preScript generate_ghidra_pyi.py ./ generate_ghidra_pyi.py genera un setup.py dentro del directorio que se seleccionó.
Esto permite el uso de pip install para instalar un paquete PEP 561 Stub que PyCharm y otras herramientas que contienen información de tipo para el módulo Ghidra.