.pyi 생성기 Ghidra .pyi 생성기는 전체 Ghidra API에 대한 .pyi 유형 스터브를 생성합니다. 이러한 스터브 파일은 나중에 Pycharm에서 개발 경험을 향상시킬 수 있습니다.
여기에서 출시 된 스터브를 사용하거나 아래 지침을 따라 직접 생성 할 수 있습니다.
릴리스에는 pip install ghidra-stubs*.whl 로 단순히 설치할 수있는 PEP 561 스터브 패키지가 포함되어 ghidra . 그런 다음 모든 일치 도구는 유형 분석 목적으로 스터브 패키지를 사용합니다.
Stub 파일을 Pycharm에 수동으로 추가하려면 설치, 제거 및 업그레이드 통역 경로의 지침을 따르십시오.
일단 설치되면 평소와 같이 Ghidra 모듈을 가져 오면 Pycharm이 나머지를 수행하기 만하면됩니다.
import ghidra Ghidra Buildins에 대한 지원을 얻으려면 가져와야합니다. 생성 된 ghidra_builtins.pyi Stub에 존재하는 유형 힌트. 실제 파이썬 모듈이 아니기 때문에 런타임에 가져 오면 실패합니다. 그러나 .pyi 는 pycharm에게 당신에게 도움이 필요한 모든 정보를 제공합니다.
try :
from ghidra . ghidra_builtins import *
except :
pass 실제 ghidra 모듈이없는 Python 3 환경에서 Ghidra_bridge를 사용하는 경우 다음과 같은 스 니펫을 사용할 수 있습니다.
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 의 특수 값입니다.
일단 완료되면 코드와 즐기십시오.

GHIDRA에서 모든 유형을 올바르게 추출하려면 API 문서를 추출하십시오.
Help -> Ghidra API Help 스크립트는 attr 및 typing 패키지에 따라 다릅니다. Python2.7 지원이 점차적으로 생태계에서 삭제되어 패키지를 설치하고 가져 오기가 어렵 기 때문에 이제 vendor 디렉토리에 따라 공급됩니다.
# 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
.pyi 파일 생성Script Directories 에이 디렉토리를 추가하십시오.generate_ghidra_pyi.py 실행하십시오 ( IDE Helpers 아래에있을 것입니다).pyi 파일을 저장하려는 디렉토리를 선택하십시오. $GHIDRA_ROOT /support/analyzeHeadless /tmp tmp -scriptPath $( pwd ) -preScript generate_ghidra_pyi.py ./ generate_ghidra_pyi.py 선택된 디렉토리 내부에서 setup.py 생성합니다.
이를 통해 pip install 사용하여 PyCharm 및 기타 도구가 GHIDRA 모듈에 대한 유형 정보를 포함하는 PEP 561 스터브 패키지를 설치할 수 있습니다.