.pyi Generator Ghidra .pyi Generator สร้างสตับชนิด .pyi สำหรับ Ghidra API ทั้งหมด ไฟล์ต้นขั้วเหล่านั้นสามารถใช้ในภายหลังใน Pycharm เพื่อเพิ่มประสบการณ์การพัฒนา
คุณสามารถใช้ต้นขั้วที่ปล่อยออกมาได้ที่นี่หรือทำตามคำแนะนำด้านล่างเพื่อสร้างตัวเอง
การเปิดตัวมีแพ็คเกจ PEP 561 Stub ซึ่งสามารถติดตั้งได้ด้วย pip install ghidra-stubs*.whl เข้าสู่สภาพแวดล้อมที่มีโมดูล ghidra จริง เครื่องมือที่สอดคล้องกันใด ๆ จะใช้แพ็คเกจ Stub เพื่อการวิเคราะห์ประเภท
หากคุณต้องการเพิ่มไฟล์ต้นขั้วไปยัง Pycharm ด้วยตนเองให้ทำตามคำแนะนำในการติดตั้งถอนการติดตั้งและอัพเกรดเส้นทางล่าม
เมื่อติดตั้งแล้วสิ่งที่คุณต้องทำคือนำเข้าโมดูล Ghidra ตามปกติและ Pycharm จะทำส่วนที่เหลือ
import ghidra ในการรับการสนับสนุนสำหรับ Ghidra Builtins คุณต้องนำเข้าเช่นกัน ประเภทคำแนะนำสำหรับผู้ที่มีอยู่ใน ghidra_builtins.pyi stub เนื่องจากไม่ใช่โมดูล Python จริงการนำเข้าที่รันไทม์จะล้มเหลว แต่ .pyi pyi ให้ข้อมูลทั้งหมดที่ต้องใช้เพื่อช่วยคุณ
try :
from ghidra . ghidra_builtins import *
except :
pass หากคุณใช้ ghidra_bridge จากสภาพแวดล้อม Python 3 ที่ไม่มีโมดูล ghidra จริงคุณสามารถใช้ตัวอย่างดังต่อไปนี้:
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 ตอนนี้พวกเขาได้รับการ vendored ภายใต้ไดเรกทอรี vendor เนื่องจากการสนับสนุน Python2.7 ค่อยๆถูกทิ้งจากระบบนิเวศทำให้ติดตั้งและดึงแพคเกจได้ยาก
# 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 ใน Ghidra Script Managergenerate_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 เพื่อติดตั้งแพ็คเกจ PEP 561 Stub ที่รับรู้โดย PyCharm และเครื่องมืออื่น ๆ เป็นข้อมูลประเภทสำหรับโมดูล Ghidra