ชุดเครื่องมือ Ghidra นี้เป็นชุดเครื่องมือที่ครอบคลุมซึ่งออกแบบมาเพื่อปรับปรุงและทำให้งานต่างๆ ที่เกี่ยวข้องกับการเรียกใช้ Ghidra ในโหมด Headless เป็นแบบอัตโนมัติ ชุดเครื่องมือนี้มีสคริปต์ที่หลากหลายซึ่งสามารถดำเนินการได้ทั้งภายในและควบคู่ไปกับ Ghidra ทำให้ผู้ใช้สามารถดำเนินการต่างๆ เช่น การค้นหาช่องโหว่ การแสดงความคิดเห็นด้วยโค้ดหลอกด้วย ChatGPT และการรายงานด้วยการแสดงข้อมูลบนโค้ดเบสที่วิเคราะห์ อนุญาตให้ผู้ใช้โหลดและบันทึกสคริปต์ของตนเองและโต้ตอบกับ API ในตัวของสคริปต์
ระบบอัตโนมัติโหมดหัวขาด : ชุดเครื่องมือช่วยให้ผู้ใช้เปิดและรัน Ghidra ในโหมดหัวขาดได้อย่างราบรื่น ช่วยให้สามารถประมวลผลงานวิเคราะห์โค้ดแบบอัตโนมัติและแบบกลุ่มได้
พื้นที่เก็บข้อมูล/การจัดการสคริปต์ : ชุดเครื่องมือประกอบด้วยพื้นที่เก็บข้อมูลของสคริปต์ที่สร้างไว้ล่วงหน้าซึ่งสามารถดำเนินการได้ภายใน Ghidra สคริปต์เหล่านี้ครอบคลุมฟังก์ชันการทำงานที่หลากหลาย ช่วยให้ผู้ใช้สามารถดำเนินการวิเคราะห์และจัดการงานที่หลากหลาย ช่วยให้ผู้ใช้สามารถโหลดและบันทึกสคริปต์ของตนเองได้ โดยให้ความยืดหยุ่นและตัวเลือกการปรับแต่งสำหรับข้อกำหนดการวิเคราะห์เฉพาะของพวกเขา ผู้ใช้สามารถจัดการและจัดระเบียบคอลเลกชันสคริปต์ได้อย่างง่ายดาย
ตัวเลือกการป้อนข้อมูลที่ยืดหยุ่น : ผู้ใช้สามารถใช้ชุดเครื่องมือเพื่อวิเคราะห์ไฟล์แต่ละไฟล์หรือทั้งโฟลเดอร์ที่มีหลายไฟล์ ความยืดหยุ่นนี้ช่วยให้สามารถวิเคราะห์โค้ดเบสทั้งขนาดเล็กและขนาดใหญ่ได้อย่างมีประสิทธิภาพ
การค้นหาช่องโหว่ด้วยการจดจำรูปแบบ : ใช้ประโยชน์จากสคริปต์ของชุดเครื่องมือเพื่อระบุช่องโหว่ที่อาจเกิดขึ้นภายในโค้ดเบสที่กำลังวิเคราะห์ สิ่งนี้ช่วยให้นักวิจัยและนักพัฒนาด้านความปลอดภัยค้นพบจุดอ่อนด้านความปลอดภัยและแก้ไขจุดอ่อนเหล่านั้นในเชิงรุก
การค้นหาช่องโหว่ด้วย SemGrep : ต้องขอบคุณนักวิจัยด้านความปลอดภัย 0xdea และชุดกฎที่พวกเขาสร้างขึ้น เราสามารถใช้กฎง่ายๆ และ SemGrep เพื่อตรวจจับช่องโหว่ในโค้ดหลอก C/C++ (GitHub ของพวกเขา: https://github.com/0xdea/semgrep -กฎ)
การสร้างรหัสหลอกอัตโนมัติ : สร้างรหัสหลอกโดยอัตโนมัติภายในโหมด Headless ของ Ghidra คุณลักษณะนี้ช่วยในการทำความเข้าใจและบันทึกตรรกะของโค้ดโดยไม่ต้องมีการแทรกแซงด้วยตนเอง
การแสดงความคิดเห็นด้วยโค้ดหลอกด้วย ChatGPT : ปรับปรุงความสามารถในการอ่านและความเข้าใจของโค้ดเบสโดยใช้ ChatGPT เพื่อสร้างความคิดเห็นที่เหมือนมนุษย์สำหรับตัวอย่างโค้ดหลอก คุณลักษณะนี้ช่วยในการจัดทำเอกสารและอธิบายตรรกะของโค้ด
การรายงานและการแสดงข้อมูล : สร้างรายงานที่ครอบคลุมด้วยการแสดงภาพเพื่อสรุปและนำเสนอผลการวิเคราะห์อย่างมีประสิทธิภาพ ชุดเครื่องมือนี้มีความสามารถในการแสดงข้อมูลเป็นภาพเพื่อช่วยระบุรูปแบบ การขึ้นต่อกัน และความผิดปกติในโค้ดเบส
ก่อนใช้โปรเจ็กต์นี้ ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้งซอฟต์แวร์ต่อไปนี้:
Ghidra: คุณสามารถดาวน์โหลด Ghidra ได้จากที่เก็บ GitHub ของ National Security Agency @ https://github.com/NationalSecurityAgency/ghidra
Java: ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง Java Development Kit (JDK) เวอร์ชัน 17 ขึ้นไป คุณสามารถดาวน์โหลดได้จากเว็บไซต์ OpenJDK @ https://openjdk.org/projects/jdk/17/
BinExport (OPTIONNAL) ทำตามคำแนะนำสำหรับการติดตั้ง Ghidra Extension https://github.com/google/binexport
SemGrep (ตัวเลือก) ทำตามคำแนะนำโดยละเอียด https://semgrep.dev/docs/getting-started/
ติดตั้งข้อกำหนดเบื้องต้นที่กล่าวถึงข้างต้น
ดาวน์โหลด Sekiryu release โดยตรงจาก Github หรือใช้: pip install sekiryu
ในการใช้สคริปต์ คุณสามารถเรียกใช้สคริปต์กับไบนารี่ที่มีตัวเลือกที่คุณต้องการดำเนินการได้
sekiryu [-F FILE][OPTIONS]
โปรดทราบว่าการดำเนินการวิเคราะห์แบบไบนารี่ด้วย Ghidra (หรือผลิตภัณฑ์อื่นๆ) นั้นเป็นกระบวนการที่ค่อนข้าง ช้า ดังนั้น คาดว่าการวิเคราะห์ไบนารี่จะใช้เวลาหลายนาทีขึ้นอยู่กับประสิทธิภาพของโฮสต์ หากคุณเรียกใช้ Sekiryu กับแอปพลิเคชันที่มีขนาดใหญ่มากหรือมีไฟล์ไบนารีจำนวนมาก ให้เตรียมพร้อมที่จะ รอ
ค้นหาการสาธิตได้ที่ www.bushido-sec.com
The "server.py" is basically built to allow scripts to interract with Ghidra each other and with the host system. An User can easily develop their own script, load and saved it in the script folder and use the known functions of the API to interract with Ghidra.
เพื่อใช้งาน ผู้ใช้จะต้องนำเข้า xmlrpc ในสคริปต์และเรียกใช้ฟังก์ชันเช่น: proxy.send_data
send_data() - อนุญาตให้ผู้ใช้ส่งข้อมูลไปยังเซิร์ฟเวอร์ ("ข้อมูล" เป็นพจนานุกรม)
recv_data() - อนุญาตให้ผู้ใช้รับข้อมูลจากเซิร์ฟเวอร์ ("ข้อมูล" เป็นพจนานุกรม)
request_GPT() - อนุญาตให้ผู้ใช้ส่งข้อมูลสตริงผ่าน ChatGPT API
สคริปต์จะถูกบันทึกไว้ในโฟลเดอร์ /modules/scripts/ คุณสามารถคัดลอกสคริปต์ของคุณไปที่นั่นได้ ในไฟล์ ghidra_pilot.py
คุณจะพบฟังก์ชันต่อไปนี้ซึ่งมีหน้าที่ในการเรียกใช้สคริปต์ ghidra ที่ไม่มีหัว:
def exec_headless(ไฟล์, สคริปต์): """ ดำเนินการวิเคราะห์ headless ของ ghidra """path = ghidra_path + 'analyzeHeadless'# การตั้งค่า Variablestmp_folder = "/tmp/out"os.mkdir(tmp_folder) cmd = ' ' + tmp_folder + ' TMP_DIR -นำเข้า'+ ' '+ ไฟล์ + ' '+ "-postscript "+ script +" -deleteProject"# กำลังรัน ghidra ด้วยไฟล์และ scripttry ที่ระบุ: p = subprocess.run([str(path + cmd)], shell=True, capture_output=True) os.rmdir(tmp_folder) ยกเว้น KeyError เป็น e: print(e) os.rmdir(tmp_folder)
การใช้งานค่อนข้างตรงไปตรงมา คุณสามารถสร้างสคริปต์ของคุณเอง จากนั้นเพียงเพิ่มฟังก์ชันใน ghidra_pilot.py
เช่น:
def yourfunction(file): ลอง: # การตั้งค่า scriptscript = "modules/scripts/your_script.py"# เริ่มฟังก์ชัน exec_headless ใน threadthread ใหม่ = threading.Thread(target=exec_headless, args=(file, script)) thread.start () thread.join() ยกเว้นข้อยกเว้นเป็น e: print(str(e))
ไฟล์ cli.py
รับผิดชอบอินเทอร์เฟซบรรทัดคำสั่งและอนุญาตให้คุณเพิ่มอาร์กิวเมนต์และคำสั่งที่เกี่ยวข้องดังนี้:
analysis_parser.add_argument('[-ShortCMD]', '[--LongCMD]', help="ข้อความช่วยเหลือของคุณ", action="store_true")
สคริปต์/สคริปต์/SCRIIIIIPTS : เครื่องมือนี้ได้รับการออกแบบให้เป็นชุดเครื่องมือที่ช่วยให้ผู้ใช้สามารถบันทึกและเรียกใช้สคริปต์ของตนเองได้อย่างง่ายดาย แน่นอนว่าหากคุณสามารถมีส่วนร่วมในสคริปต์ประเภทใดก็ได้ (สิ่งที่น่าสนใจจะได้รับการอนุมัติ!)
การเพิ่มประสิทธิภาพ : ยินดีรับการเพิ่มประสิทธิภาพทุกรูปแบบ และเกือบจะได้รับการอนุมัติและปรับใช้โดยอัตโนมัติในทุกๆ รีลีส สิ่งดีๆ บางอย่างอาจเป็น: ปรับปรุงการทำงานแบบขนาน การล้างโค้ด และการปรับปรุงโดยรวม
การวิเคราะห์มัลแวร์ : นี่เป็นส่วนสำคัญซึ่งฉันไม่คุ้นเคย นักวิเคราะห์มัลแวร์คนใดก็ตามที่ยินดีมีส่วนร่วมสามารถแนะนำแนวคิด สคริปต์ หรือแม้แต่คอมมิตโค้ดในโปรเจ็กต์ได้โดยตรง
การรายงาน : ฉันไม่ใช่วิศวกรด้านการแสดงข้อมูล ถ้าใครยินดีปรับปรุง/มีส่วนร่วมในส่วนนี้ ก็จะดีมาก
The xmlrpc.server module is not secure against maliciously constructed data. If you need to parse untrusted or unauthenticated data see XML vulnerabilities.
A lot of people encouraged me to push further on this tool and improve it. Without you all this project wouldn't have been the same so it's time for a proper shout-out: - @JeanBedoul @McProustinet @MilCashh @Aspeak @mrjay @Esbee|sandboxescaper @Rosen @Cyb3rops @RussianPanda @Dr4k0nia - @Inversecos @Vs1m @djinn @corelanc0d3r @ramishaath @chompie1337 Thanks for your feedback, support, encouragement, test, ideas, time and care.
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ Bushido Security กรุณาเยี่ยมชมเว็บไซต์ของเรา: https://www.bushido-sec.com/