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 + GCtrl + Alt + Rการทดสอบเบื้องต้นแสดงให้เห็นว่าการขอชื่อที่ดีขึ้นทำงานได้ดีขึ้นถ้าคุณขอคำอธิบายของฟังก์ชั่นก่อน - ฉันคิดว่าเพราะโมเดลนั้นใช้ความคิดเห็นของตัวเองเพื่อให้คำแนะนำที่แม่นยำยิ่งขึ้น มีองค์ประกอบของการสุ่มเพื่อตอบกลับของ AI หากด้วยเหตุผลบางอย่างการตอบกลับครั้งแรกที่คุณได้รับไม่เหมาะกับคุณคุณสามารถเรียกใช้คำสั่งได้อีกครั้ง
คุณสามารถเปลี่ยนภาษาของ Gepetto ได้โดยการแก้ไขสถานที่ในการกำหนดค่า ตัวอย่างเช่นในการใช้ปลั๊กอินเป็นภาษาฝรั่งเศสคุณจะเพิ่ม:
[Gepetto]
LANGUAGE = " fr_FR " สถานที่ที่เลือกจะต้องตรงกับชื่อโฟลเดอร์ใน gepetto/locales หากภาษาที่ต้องการไม่สามารถใช้ได้คุณสามารถมีส่วนร่วมในโครงการโดยเพิ่มด้วยตัวคุณเอง! สร้างโฟลเดอร์ใหม่สำหรับสถานที่ที่ต้องการ (เช่น: gepetto/locales/de_DE/LC_MESSAGES/ ) และเปิดคำขอดึงใหม่ด้วยไฟล์ .po ที่อัปเดตซึ่งคุณสามารถสร้างได้โดยการคัดลอกและแก้ไข msgstr gepetto/locales/gepetto.pot ทั้งหมด