IDACODE ทำให้การเรียกใช้งานและดีบั๊กสคริปต์ Python ในสภาพแวดล้อม IDA ของคุณง่ายโดยไม่ต้องออกจากรหัส Visual Studio ส่วนขยายรหัส VS สามารถพบได้ในตลาด
Idacode ยังคงอยู่ในสถานะแรก ๆ และคาดว่าจะมีข้อบกพร่อง กรุณาเปิดปัญหาใหม่หากคุณพบปัญหาใด ๆ
debugpy สำหรับการสื่อสารมันซิงค์หน้าต่างเอาต์พุตตามธรรมชาติด้วยแผงเอาต์พุตของรหัส VSIdacode รองรับทั้ง Python 2 และ Python 3!
ในการตั้งค่าการพึ่งพาสำหรับปลั๊กอิน IDA:
# make sure to use the correct Python version
# IDACode supports the latest debugpy as of version 3.0.0, make sure to upgrade!
python -m pip install --user debugpy tornado โคลนที่เก็บนี้หรือดาวน์โหลดแพ็คเกจรุ่นจากที่นี่ ida.zip สะท้อนเนื้อหาของโฟลเดอร์ ida ในที่เก็บนี้ คัดลอกไฟล์ทั้งหมดลงในไดเรกทอรีปลั๊กอิน IDAS
ขั้นตอนต่อไปคือการกำหนดค่าการตั้งค่าของคุณเพื่อให้ตรงกับสภาพแวดล้อมของคุณ แก้ไข idacode_utils/settings.py ตาม:
HOST : นี่คือที่อยู่โฮสต์ นี่คือ 127.0.0.1 เสมอเว้นแต่คุณต้องการให้สามารถเข้าถึงได้จากสถานที่ห่างไกล โปรดทราบว่าปลั๊กอินนี้ไม่ได้ใช้ประโยชน์จากการรับรองความถูกต้องPORT : นี่คือพอร์ตที่คุณต้องการให้ IDA ฟัง สิ่งนี้ใช้สำหรับการสื่อสาร WebSocket ระหว่างรหัส IDA และ VSDEBUG_PORT : นี่คือพอร์ตที่คุณต้องการฟังสำหรับการดีบักที่เข้ามาPYTHON : นี่คือเส้นทางที่แน่นอนไปยังการกระจาย Python ที่การตั้งค่า IDA ของคุณใช้LOGGING : กำหนดว่าดีบักเกอร์ควรเข้าสู่ไฟล์หรือไม่ สิ่งนี้มีประโยชน์อย่างยิ่งเมื่อคุณพบปัญหากับ IDACODE โปรดส่งปัญหาใหม่หากคุณพบอะไร ไฟล์จะอยู่ในไดเรกทอรีอุณหภูมิของคุณเสมอ (เช่น Windows: %TEMP% ) ไฟล์เรียกว่า debugpy.*.log ตอนนี้คุณสามารถเริ่มปลั๊กอินได้โดยคลิกที่ IDACode ในเมนูปลั๊กอิน
ส่วนขยายรหัส VS มีอยู่ในตลาด ในการกำหนดค่าส่วนขยายโปรดดูที่ ReadMe ของส่วนขยาย
กด IDACode ในเมนูปลั๊กอิน คุณควรได้รับการต้อนรับด้วยข้อความต่อไปนี้:
IDACode listening on 127.0.0.1:7065
ณ รุ่น 0.2.0 IDACODE รองรับ "ดำเนินการบนบันทึก" ซึ่งเปิดใช้งานโดยค่าเริ่มต้น รหัส VS จะเรียกใช้สคริปต์ของคุณโดยอัตโนมัติใน IDA ทันทีที่คุณบันทึกเอกสารปัจจุบัน (เช่นด้วย Ctrl+S) พฤติกรรมนี้สามารถปิดใช้งานได้ในการตั้งค่า
มีคำสั่ง 4 คำสั่ง:

เมื่อคุณเปิดโฟลเดอร์ที่คุณต้องการใส่สคริปต์ของคุณ (คุณ ต้อง ระบุโฟลเดอร์เมื่อรหัส VS ขอให้คุณ!) คุณพร้อมที่จะเชื่อมต่อกับ IDA คุณสามารถทำได้โดยการดำเนินการ Connect to IDA หรือ Connect and attach a debugger to IDA โปรดทราบว่าเซสชั่นการดีบักนั้นถาวรจนกว่าคุณจะรีสตาร์ท IDA คุณไม่สามารถเปลี่ยนโฟลเดอร์เวิร์กสเปซเมื่อดีบักเกอร์เริ่มแล้ว
ตรวจสอบให้แน่ใจว่าโฟลเดอร์ Workspace เป็นโฟลเดอร์ที่สคริปต์หลักของคุณอยู่ใน
เมื่อคุณเชื่อมต่อคุณสามารถเลือก Execute script in IDA
IDACODE ใช้ดีบักเกอร์ระยะไกลของ VS Code เพื่อเชื่อมต่อกับ IDA รองรับคุณสมบัติรหัส VS ทั้งหมด อย่างไรก็ตามคุณต้องระบุจุดเข้าใช้สคริปต์โดยใช้ฟังก์ชันการทำงานของ Python Builtin: breakpoint คำสั่งนี้บอกให้ดีบักเกอร์หยุดการดำเนินการหากไม่มีดีบักเกอร์นำเสนอมันจะไม่สนใจฟังก์ชั่น IDACODE นำเข้าแพ็คเกจผู้ช่วยที่เรียกว่า dbg ซึ่งใช้จุดเบรกพ breakpoint ที่เรียกว่า bp ฟังก์ชั่นนี้รองรับการบันทึกและเงื่อนไข:
name = idc . get_segm_name ( segment )
dbg . bp ( name == ".text" , f"found { name } at { segment } " ) โปรดทราบว่าการโทร breakpoint() ไม่ควรเกิดขึ้นในตอนท้ายของไฟล์มันจะต้องเป็นก่อนที่จะมีรหัสบรรทัดอื่น ๆ เสมอเมื่อมันแบ่งตามคำสั่ง ถัดไป ในรหัสของคุณ นอกจากนี้โปรดทราบว่าหากคุณตัดสินใจใช้แพ็คเกจ dbg คุณต้องลบการอ้างอิงทั้งหมดหรือใช้ตัวแปร __idacode__ เป็นเงื่อนไขก่อนที่จะดำเนินการเป็นสคริปต์ IDA ปกติ
นอกจากนี้ยังเป็นสิ่งสำคัญที่การแนบดีบักเกอร์จะสร้างอินสแตนซ์ดีบั๊กใหม่ ในกรณีส่วนใหญ่นี่ไม่ใช่สิ่งที่คุณต้องการ หากคุณตัดการเชื่อมต่อจากดีบักเกอร์ให้ใช้ดีบักเกอร์ระยะไกลของรหัสกับรหัสเพื่อเชื่อมต่อกลับ
