Gepetto เป็นปลั๊กอิน Python ซึ่งใช้โมเดลภาษาขนาดใหญ่ต่าง ๆ เพื่อให้ความหมายกับฟังก์ชั่นที่สลายตัวโดย IDA Pro (≥ 7.4) มันสามารถใช้ประโยชน์จากพวกเขาเพื่ออธิบายว่าฟังก์ชั่นทำอะไรและเปลี่ยนชื่อตัวแปรโดยอัตโนมัติ นี่คือตัวอย่างง่ายๆของผลลัพธ์ที่สามารถให้ได้ในไม่กี่วินาที:
เพียงแค่วางสคริปต์นี้ ( gepetto.py
รวมถึง gepetto/
โฟลเดอร์) ลงในโฟลเดอร์ IDA Plugins ของคุณ ( $IDAUSR/plugins
) โดยค่าเริ่มต้นบน Windows นี่ควรเป็น %AppData%Hex-RaysIDA Proplugins
(คุณอาจต้องสร้างมัน)
คุณจะต้องเพิ่มแพ็คเกจที่จำเป็นในการติดตั้ง Python ของ IDA เพื่อให้สคริปต์ทำงานได้ ค้นหาว่าล่าม IDA ที่ใช้โดยการตรวจสอบคีย์รีจิสทรีต่อไปนี้: ComputerHKEY_CURRENT_USERSoftwareHex-RaysIDA
(ค่าเริ่มต้นบน windows: %LOCALAPPDATA%ProgramsPythonPython39
) ในที่สุดด้วยล่ามที่สอดคล้องกันเพียงแค่เรียกใช้:
[/path/to/python] -m pip install -r requirements.txt
gepetto/config.ini
) และเพิ่มปุ่ม API ของคุณเอง สำหรับ OpenAI สามารถพบได้ในหน้านี้ โปรดทราบว่าการสืบค้น API มักจะไม่ฟรี (แม้ว่าจะไม่แพงมาก) และคุณจะต้องตั้งค่าวิธีการชำระเงินกับผู้ให้บริการที่เกี่ยวข้อง
การเพิ่มการสนับสนุนสำหรับโมเดลเพิ่มเติมไม่ควรยากเกินไปหากผู้ให้บริการใดก็ตามที่คุณกำลังพิจารณาเปิดเผย API ที่คล้ายกับ Openai ดูโฟลเดอร์ gepetto/models
สำหรับแรงบันดาลใจหรือเปิดปัญหาหากคุณไม่สามารถคิดออกได้
เมื่อติดตั้งปลั๊กอินอย่างถูกต้องคุณควรจะสามารถเรียกใช้มันได้จากเมนูบริบทของหน้าต่าง Pseudocode ของ IDA ดังที่แสดงในภาพหน้าจอด้านล่าง:
สลับระหว่างรุ่นที่รองรับโดย gepetto จากเมนูแก้ไข> gepetto:
Gepetto ยังมีอินเทอร์เฟซ CLI ที่คุณสามารถใช้เพื่อถามคำถามกับ LLM โดยตรงจาก IDA ตรวจสอบให้แน่ใจว่าได้เลือก Gepetto
ในแถบอินพุต:
มีสายลัดต่อไปนี้:
Ctrl
+ Alt
+ G
Ctrl
+ Alt
+ R
การทดสอบเบื้องต้นแสดงให้เห็นว่าการขอชื่อที่ดีขึ้นทำงานได้ดีขึ้นถ้าคุณขอคำอธิบายของฟังก์ชั่นก่อน - ฉันคิดว่าเพราะโมเดลนั้นใช้ความคิดเห็นของตัวเองเพื่อให้คำแนะนำที่แม่นยำยิ่งขึ้น มีองค์ประกอบของการสุ่มเพื่อตอบกลับของ AI หากด้วยเหตุผลบางอย่างการตอบกลับครั้งแรกที่คุณได้รับไม่เหมาะกับคุณคุณสามารถเรียกใช้คำสั่งได้อีกครั้ง
คุณสามารถเปลี่ยนภาษาของ Gepetto ได้โดยการแก้ไขสถานที่ในการกำหนดค่า ตัวอย่างเช่นในการใช้ปลั๊กอินเป็นภาษาฝรั่งเศสคุณจะเพิ่ม:
[Gepetto]
LANGUAGE = " fr_FR "
สถานที่ที่เลือกจะต้องตรงกับชื่อโฟลเดอร์ใน gepetto/locales
หากภาษาที่ต้องการไม่สามารถใช้ได้คุณสามารถมีส่วนร่วมในโครงการโดยเพิ่มด้วยตัวคุณเอง! สร้างโฟลเดอร์ใหม่สำหรับสถานที่ที่ต้องการ (เช่น: gepetto/locales/de_DE/LC_MESSAGES/
) และเปิดคำขอดึงใหม่ด้วยไฟล์ .po
ที่อัปเดตซึ่งคุณสามารถสร้างได้โดยการคัดลอกและแก้ไข msgstr
gepetto/locales/gepetto.pot
ทั้งหมด