|
IDA-MINSC เป็นปลั๊กอินสำหรับ IDA Pro ที่ช่วยผู้ใช้ด้วยการเขียนสคริปต์ปลั๊กอิน idapython ที่รวมกับ disassembler ปลั๊กอินนี้จัดกลุ่มแง่มุมต่าง ๆ ของ IDAPYTHON API ในรูปแบบที่ง่ายกว่าซึ่งช่วยให้วิศวกรย้อนกลับสามารถใช้สคริปต์ด้านต่าง ๆ ของการทำงานด้วยการลงทุนน้อยมาก
มีการแนะนำแนวคิดจำนวนหนึ่งเช่นระบบการติดแท็กการสนับสนุนฟังก์ชั่นหลายฟังก์ชั่นและการกรองด้วยความตั้งใจว่าปัญหาการค้นหาและคำอธิบายประกอบส่วนใหญ่สามารถทำได้ด้วยรหัสเพียงไม่กี่บรรทัด สิ่งนี้ควรช่วยให้ผู้ใช้เขียนโค้ดชั่วคราวที่แฮ็กและแฮ็คซึ่งสามารถใช้เพื่อเพิ่มความพยายามในการกลับรายการโดยไม่ทำให้ไขว้เขว
การติดตั้งควรจะค่อนข้างง่ายและต้องการเพียงแค่โคลนที่เก็บข้อมูลลงในไดเรกทอรีผู้ใช้ IDA ของผู้ใช้โดยตรง บนแพลตฟอร์ม Windows โดยทั่วไปจะอยู่ที่ %APPDATA%/Hex-Rays/IDA Pro ในขณะที่บนแพลตฟอร์ม Linux สามารถพบได้ที่ $HOME/.idapro เนื้อหานี้ของที่เก็บนี้ควรแทนที่ไดเรกทอรีนั้น หากคุณมีไฟล์ใด ๆ ที่อยู่ในปัจจุบันเพียงย้ายไฟล์ไปยังไดเรกทอรีของที่เก็บ หลังจากการติดตั้ง IDA Pro ควรโหลดปลั๊กอิน idapython ซึ่งควรส่งผลให้ idapythonrc.py เป็นของ IDA-MINSC ที่ถูกดำเนินการซึ่งจะแทนที่เนมสเปซเริ่มต้นของ Idapython ด้วยชุดของปลั๊กอิน
ในการโคลนที่เก็บใน $TARGET directory หนึ่งสามารถทำได้เพียง:
$ git clone https://github.com/arizvisa/ida-minsc "$TARGET"
หลังจากโคลนนิ่งที่เก็บข้อมูลผู้ใช้จะต้องติดตั้งการพึ่งพา python ที่ต้องการลงในแพ็คเกจของพวกเขา สิ่งนี้สามารถทำได้โดยใช้ pip ซึ่งเป็นเครื่องมือที่รวมกับ Python ไฟล์ที่มีข้อกำหนดของผู้ใช้อยู่ในรูทของที่เก็บเป็น requirements.txt . txt
ในการติดตั้งการพึ่งพา python ที่ต้องการเราสามารถเรียกใช้ pip ได้เช่นกัน:
$ pip install -r "requirements.txt"
ณ จุดนี้เมื่อผู้ใช้เริ่ม IDA Pro, IDA-MINSC จะแทนที่เนมสเปซของ Idapython ด้วยตัวเอง ณ จุดนี้สามารถใช้งานได้ทันที ในการตรวจสอบว่า IDA-MINSC ได้รับการติดตั้งอย่างถูกต้องเราสามารถพิมพ์ได้ที่ idapython prompt:
> database.config.version()
สิ่งนี้ควรส่งคืนหมายเลข 0 เนื่องจากไม่มีการโหลดฐานข้อมูล
หลังจากติดตั้งการพึ่งพา Python คุณสามารถทำสิ่งต่าง ๆ เช่นต่อไปนี้เพื่อแสดงรายการฟังก์ชั่นทั้งหมดในฐานข้อมูลของคุณ:
> database.functions.list()
หรือทำซ้ำผ่านฟังก์ชั่นทั้งหมดในฐานข้อมูลคุณสามารถลอง:
> for ea in database.functions():
print(hex(ea))
โปรดดูเอกสารสำหรับรายละเอียดเพิ่มเติมเกี่ยวกับสิ่งที่ปลั๊กอินนี้มีให้คุณ
เอกสารประกอบที่ครอบคลุมมีอยู่ที่หน้าโครงการบน github.io หรือสามารถสร้างท้องถิ่นผ่านสาขา "เอกสาร"
หากผู้ใช้ต้องการสร้างเอกสารสำหรับการใช้งานในท้องถิ่นพวกเขาจะต้องติดตั้งแพ็คเกจสฟิงซ์ก่อน หลังจากนั้นเอกสารทั้งหมดอยู่ภายในสาขา "เอกสาร" เพียงแค่ชำระเงินสาขาเปลี่ยนไดเรกทอรีเป็น "เอกสาร" จากนั้นเรียกใช้ gnu make เป็น:
$ make html
ซึ่งจะส่งผลให้ระบบสร้างแยกโมดูลที่มีอยู่แล้วแสดงผลเอกสารทั้งหมดลงในไดเรกทอรี _build ที่สัมพันธ์กับ docs/Makefile เอกสารสามารถสร้างขึ้นได้สำหรับรูปแบบที่แตกต่างกันจำนวนหนึ่ง หากต้องการแสดงรายการรูปแบบที่มีอยู่ทั้งหมดให้พิมพ์ make help ที่พรอมต์คำสั่ง
ดูการสนับสนุน MD สำหรับแนวปฏิบัติที่ดีที่สุดในการรายงานปัญหาหรือเพื่อเพิ่มฟังก์ชั่นการทำงานให้กับโครงการนี้
ต้องขอบคุณคนที่ไม่ระบุชื่อและไม่ระบุชื่อหลายคนที่ช่วยในการพัฒนาปลั๊กอินนี้ตลอดหลายปีที่ผ่านมา