.pyi O gerador Ghidra .pyi gera stubs do tipo .pyi para toda a API de Ghidra. Esses arquivos Stub podem ser usados posteriormente no Pyharm para aprimorar a experiência de desenvolvimento.
Você pode usar os stubs lançados aqui ou seguir as instruções abaixo para gerá -las você mesmo.
A versão contém o pacote PEP 561 Stub, que pode ser simplesmente instalado com pip install ghidra-stubs*.whl no ambiente em que o módulo ghidra real está disponível. Qualquer ferramenta conforme usará o pacote Stub para fins de análise de tipo.
Se você deseja adicionar manualmente os arquivos Stub ao PyCharm, siga as instruções em instalação, desinstale e atualize os caminhos do intérprete.
Uma vez instalado, tudo o que você precisa fazer é importar os módulos Ghidra, como de costume, e Pycharm fará o resto.
import ghidra Para obter suporte para as Buildins Ghidra, você também precisa importá -las. O tipo sugere os que existem no ghidra_builtins.pyi stub gerado. Como não é um módulo Python real, a importação de tempo de execução falhará. Mas o .pyi fornece a Pycharm todas as informações necessárias para ajudá -lo.
try :
from ghidra . ghidra_builtins import *
except :
pass Se você estiver usando Ghidra_bridge de um ambiente Python 3, onde não existe um módulo ghidra real, você pode usar um trecho como o seguinte:
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 é um valor especial que é sempre False em tempo de execução, mas True durante qualquer tipo de verificação ou conclusão do tipo.
Uma vez feito, basta codificar e aproveitar.

Para extrair adequadamente todos os tipos de Ghidra, extraia a documentação da API.
Help -> Ghidra API Help O script depende dos pacotes attr e typing . Agora eles são vendidos no diretório vendor , pois o suporte ao Python2.7 está gradualmente sendo retirado do ecossistema, dificultando a instalação e a busca de pacotes.
# 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 no Ghidra Script Managergenerate_ghidra_pyi.py (estará localizado sob IDE Helpers ).pyi . $GHIDRA_ROOT /support/analyzeHeadless /tmp tmp -scriptPath $( pwd ) -preScript generate_ghidra_pyi.py ./ generate_ghidra_pyi.py gera um setup.py dentro do diretório que foi selecionado.
Isso permite usar pip install para instalar um pacote PEP 561 Stub reconhecido pelo PyCharm e outras ferramentas como contendo informações de tipo para o módulo Ghidra.