กลับไปหน้าบทความ

อ่าน 2 นาที

ไดนาโมริโอ

DynamoRIO เป็น เฟรมเวิร์กสำหรับการ ตรวจสอบ ไบนารีแบบไดนามิก ที่ได้รับอนุญาตภายใต้ BSD สำหรับการพัฒนา เครื่องมือ วิเคราะห์โปรแกรมแบบไดนามิก DynamoRIO มุ่งเป้าไปที่ แอปพลิเคชัน...

ไดนาโมริโอ

ไดนาโมริโอ
นักพัฒนาผู้เขียน DynamoRIO
ปล่อยมิถุนายน 2545 ( 2002-06 )
เวอร์ชันเสถียร
11.2.0 [ 1 ] / 20 ธันวาคม 2024 ( 20 ธันวาคม 2024 )
รุ่นทดลองใช้งาน
7.0.0-RC1 / 3 กุมภาพันธ์ 2560 ( 3 กุมภาพันธ์ 2017 )
ระบบปฏิบัติการแอนดรอยด์ , ลินุกซ์ , วินโดวส์
แพลตฟอร์มAArch32 , AArch64 , IA-32 , x86-64
พิมพ์กรอบการทำงานสำหรับการวัดผล , โปรไฟล์เลอร์
ใบอนุญาตบีเอสดี
เว็บไซต์dynamorio.org
ที่เก็บข้อมูล
  • github.com/DynamoRIO/dynamorio

DynamoRIOเป็น เฟรมเวิร์กสำหรับการ ตรวจสอบไบนารีแบบไดนามิกที่ได้รับอนุญาตภายใต้ BSDสำหรับการพัฒนา เครื่องมือ วิเคราะห์โปรแกรมแบบไดนามิก DynamoRIO มุ่งเป้าไปที่ แอปพลิเคชัน ในพื้นที่ผู้ใช้ภายใต้ระบบปฏิบัติการAndroid , LinuxและWindows ที่ทำงาน บน สถาปัตยกรรมชุดคำสั่งAArch32 , IA-32และx86-64

DynamoRIO ถูกสร้างขึ้นมาในตอนแรกเป็นระบบเพิ่มประสิทธิภาพไบนารี แบบไดนามิก แต่ต่อมาได้ถูกนำไปใช้เป็นเครื่องมือด้านความปลอดภัย การดีบัก และการวิเคราะห์ DynamoRIO มีต้นกำเนิดมาจากการทำงานร่วมกันระหว่างระบบเพิ่มประสิทธิภาพ Dynamo ของHewlett-Packard และกลุ่มวิจัย Runtime Introspection and Optimization (RIO) [ 2 ]ที่MITดังนั้นจึงมีชื่อรวมกันว่า "DynamoRIO" มันถูกเผยแพร่สู่สาธารณะครั้งแรกในฐานะชุดเครื่องมือไบนารีที่เป็นกรรมสิทธิ์ในเดือนมิถุนายน พ.ศ. 2545 และต่อมาได้เปิดเป็นโอเพนซอร์สภายใต้ใบอนุญาต BSD ในเดือนมกราคม พ.ศ. 2552

ภาพรวม

DynamoRIO เป็นเครื่องเสมือนกระบวนการทำงาน (process virtual machine)ที่เปลี่ยนเส้นทางการทำงานของโปรแกรมจากโค้ดไบนารีต้นฉบับไปยังสำเนาของโค้ดนั้น จากนั้นจึงเพิ่มเครื่องมือวัดที่ทำหน้าที่ตามที่เครื่องมือต้องการลงในสำเนานี้ โดยไม่มีการเปลี่ยนแปลงใดๆ กับโปรแกรมต้นฉบับ ซึ่งไม่จำเป็นต้องเตรียมการเป็นพิเศษแต่อย่างใด DynamoRIO ทำงานได้อย่างสมบูรณ์ในระหว่างการทำงานและจัดการกับโค้ดเก่า ไลบรารีที่โหลดแบบไดนามิก โค้ดที่สร้างขึ้นแบบไดนามิก และโค้ดที่แก้ไขตัวเองได้

DynamoRIO ตรวจสอบ การไหลของการควบคุมทั้งหมดเพื่อบันทึกการดำเนินการทั้งหมดของโปรแกรมเป้าหมาย การตรวจสอบนี้จะเพิ่มภาระแม้ว่าจะไม่มีเครื่องมืออยู่ก็ตาม ภาระเฉลี่ยของ DynamoRIO คือ 11 เปอร์เซ็นต์[ 3 ]

คุณสมบัติ

APIของ DynamoRIO ช่วยลดความซับซ้อนของรายละเอียดกระบวนการเวอร์ชวลไลเซชัน และมุ่งเน้นไปที่การตรวจสอบหรือแก้ไขกระแสโค้ดแบบไดนามิกของโปรแกรม เครื่องมือสามารถแทรกแทรมโพลีนลงในโปรแกรมเพื่อเรียกใช้การกระทำของเครื่องมือ ณ จุดที่กำหนดในโปรแกรม นอกจากนี้ เครื่องมือยังสามารถแทรกการตรวจสอบใน ระดับ ภาษาแอสเซมบลีซึ่งให้การควบคุมอย่างละเอียดต่อการกระทำและประสิทธิภาพของเครื่องมือ DynamoRIO รองรับการเพิ่มประสิทธิภาพแบบปรับเปลี่ยนได้และการตรวจสอบแบบปรับเปลี่ยนได้ โดยอนุญาตให้เครื่องมือลบหรือแก้ไขการตรวจสอบได้ทุกจุดตลอดการทำงานของโปรแกรมเป้าหมาย

DynamoRIO เรียกใช้ฟังก์ชันเรียกกลับ ที่ลงทะเบียนไว้กับเครื่องมือ ณ จุดเหตุการณ์ทั่วไปหลายจุดของโปรแกรม เช่น การสร้างเธรด การโหลดไลบรารี การเรียกใช้ระบบ สัญญาณ หรือข้อยกเว้น นอกจากนี้ API ของมันยังอนุญาตให้ตรวจสอบไลบรารีและพื้นที่แอดเดรส ของโปรแกรม นอกเหนือจากโค้ดอีกด้วย

API และฟังก์ชันเรียกกลับเหตุการณ์ของ DynamoRIO ได้รับการออกแบบให้ใช้งานได้ข้ามแพลตฟอร์ม ทำให้โค้ดเครื่องมือเดียวกันสามารถทำงานได้ทั้งบน Windows และ Linux รวมถึงทั้งสถาปัตยกรรม IA-32 และ x86-64 DynamoRIO รับประกันความโปร่งใส ของเครื่องมือ โดยการแยกทรัพยากรของเครื่องมือ เช่นสแต็กหน่วยความจำ และการเข้าถึงไฟล์ ออกจากโปรแกรมที่เครื่องมือทำงานอยู่

DynamoRIO มีไลบรารีที่ขยาย API เพื่อให้ สามารถเข้าถึง ตารางสัญลักษณ์การห่อหุ้มและแทนที่ฟังก์ชัน และยูทิลิตี้การติดตามที่อยู่หน่วยความจำ

เครื่องมือ

เครื่องมือชุดแรกที่สร้างขึ้นสำหรับ DynamoRIO มุ่งเน้นไปที่การเพิ่มประสิทธิภาพแบบไดนามิก[ 4 ]มีการสร้างเครื่องมือวิจัยจำนวนหนึ่งเพื่อวัตถุประสงค์ที่หลากหลาย รวมถึงการตรวจสอบการปนเปื้อน[ 5 ]และการสร้างโปรไฟล์[ 6 ]

การดูแลโครงการ

การนำ DynamoRIO มาใช้ในด้านความปลอดภัยส่งผลให้เกิดเทคนิคที่เรียกว่า การ ควบคุมโปรแกรม[ 7 ]เครื่องมือควบคุมโปรแกรมจะตรวจสอบที่มาของคำสั่งโปรแกรมแต่ละคำสั่งและการไหลของการควบคุมระหว่างคำสั่งเพื่อป้องกันไม่ให้การโจมตีด้านความปลอดภัยเข้าควบคุมโปรแกรม ในปี 2546 การควบคุมโปรแกรมได้รับการนำไปใช้ในเชิงพาณิชย์ในชื่อแบรนด์ ซอฟต์แวร์ ป้องกันการบุกรุกโฮสต์Memory Firewall ในบริษัทสตาร์ทอัพชื่อ Determina Determina ถูกซื้อกิจการโดยVMwareในเดือนสิงหาคม 2550 [ 8 ]

ดร.เมมโมรี่

Dr. Memory เป็น ดีบักหน่วยความจำแบบโอเพนซอร์สที่สร้างขึ้นบน DynamoRIO และเผยแพร่ภายใต้ใบอนุญาต LGPL [ 9 ] Dr. Memory ตรวจสอบการจัดสรรหน่วยความจำและการเข้าถึงหน่วยความจำโดยใช้หน่วยความจำเงาตรวจจับข้อผิดพลาดในการเขียนโปรแกรมที่เกี่ยวข้องกับหน่วยความจำ เช่น การเข้าถึงหน่วยความจำที่ไม่ได้เริ่มต้น การเข้าถึงหน่วยความจำที่ถูกปล่อย การล้นและการน้อยเกินไปของฮีป และการรั่วไหลของหน่วยความจำชุดคุณสมบัติของมันคล้ายกับ เครื่องมือ Memcheckที่ใช้Valgrindแม้ว่าจะทำงานบน Windows เช่นเดียวกับ Linux และเร็วกว่า Memcheck ถึงสองเท่า[ 10 ]

ดูเพิ่มเติม

หมายเหตุ

  1. ^ "เวอร์ชัน 11.2.0" . 20 ธันวาคม 2024 . สืบค้นเมื่อ24 ธันวาคม 2024 .
  2. ^โครงการ RIO: การตรวจสอบและเพิ่มประสิทธิภาพขณะรันไทม์
  3. ^อุปกรณ์วัดแบบไดนามิกโปร่งใส รูปที่ 4
  4. ^โครงสร้างพื้นฐานสำหรับการเพิ่มประสิทธิภาพแบบไดนามิกที่ปรับเปลี่ยนได้
  5. ^ TaintTrace: การติดตามการไหลของข้อมูลอย่างมีประสิทธิภาพด้วยการเขียนไบนารีใหม่แบบไดนามิก
  6. ^ PiPA: การวิเคราะห์และประมวลผลข้อมูลแบบไปป์ไลน์บนระบบมัลติคอร์
  7. ^การดำเนินการที่ปลอดภัยผ่านการควบคุมดูแลโปรแกรม
  8. ^ VMware เข้าซื้อกิจการ Determina ผู้ให้บริการ HIPS
  9. ^ Dr. Memory: โปรแกรมตรวจสอบข้อผิดพลาดของหน่วยความจำสำหรับ Windows และ Linux
  10. ^การตรวจสอบความจำเชิงปฏิบัติกับดร.ความจำ
  • เว็บไซต์อย่างเป็นทางการ
  • รายชื่อผู้รับอีเมลสำหรับผู้ใช้งาน DynamoRIO
  • หน้าหลักของ ดร. เมมโมรี่
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=DynamoRIO&oldid=1336917796 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ ไดนาโมริโอ

DynamoRIO เป็น เฟรมเวิร์กสำหรับการ ตรวจสอบ ไบนารีแบบไดนามิก ที่ได้รับอนุญาตภายใต้ BSD สำหรับการพัฒนา เครื่องมือ วิเคราะห์โปรแกรมแบบไดนามิก DynamoRIO มุ่งเป้าไปที่ แอปพลิเคชัน...

ภาพรวม

DynamoRIO เป็น เครื่องเสมือนกระบวนการทำงาน (process virtual machine) ที่เปลี่ยนเส้นทางการทำงานของโปรแกรมจากโค้ดไบนารีต้นฉบับไปยังสำเนาของโค้ดนั้น จากนั้นจึงเพิ่มเครื่องมือวัดที่ทำหน้าที่ตามที่เครื่องมือต้องการลงในสำเนานี้ โดยไม่มีการเปลี่ยนแปลงใดๆ...

คุณสมบัติ

API ของ DynamoRIO ช่วยลดความซับซ้อนของรายละเอียดกระบวนการเวอร์ชวลไลเซชัน และมุ่งเน้นไปที่การตรวจสอบหรือแก้ไขกระแสโค้ดแบบไดนามิกของโปรแกรม เครื่องมือสามารถแทรก แทรมโพลีน ลงในโปรแกรมเพื่อเรียกใช้การกระทำของเครื่องมือ ณ จุดที่กำหนดในโปรแกรม นอกจากนี้...

เครื่องมือ

เครื่องมือชุดแรกที่สร้างขึ้นสำหรับ DynamoRIO มุ่งเน้นไปที่การเพิ่มประสิทธิภาพแบบไดนามิก [ 4 ] มีการสร้างเครื่องมือวิจัยจำนวนหนึ่งเพื่อวัตถุประสงค์ที่หลากหลาย รวมถึง การตรวจสอบการปนเปื้อน [ 5 ] และการ สร้างโปรไฟล์ [ 6 ]