ดาวน์โหลดโปรแกรม debug exe 64 บิต การติดตั้งเครื่องมือแก้ไขข้อบกพร่องสำหรับ Windows คำถามสำหรับการรับสมัคร

การดีบัก เครื่องมือสำหรับหน้าต่าง- เครื่องมือแก้ไขข้อบกพร่องโค้ดปฏิบัติการ ระบบวินโดวส์- เป็นชุดโปรแกรมที่แจกจ่ายอย่างอิสระจาก Microsoft ซึ่งได้รับการออกแบบมาเพื่อการดีบักโหมดผู้ใช้และโค้ดโหมดเคอร์เนล: แอปพลิเคชัน ไดรเวอร์ บริการ โมดูลเคอร์เนล ชุดเครื่องมือประกอบด้วยคอนโซลและดีบักเกอร์โหมด GUI ยูทิลิตี้สำหรับการทำงานกับสัญลักษณ์ ไฟล์ กระบวนการ และยูทิลิตี้สำหรับการดีบักระยะไกล ชุดเครื่องมือประกอบด้วยโปรแกรมอรรถประโยชน์ที่สามารถใช้เพื่อค้นหาสาเหตุของความล้มเหลวในส่วนประกอบต่างๆ ของระบบ เครื่องมือแก้ไขข้อบกพร่องสำหรับ Windowsตั้งแต่จุดหนึ่งเป็นต้นไปจะไม่สามารถดาวน์โหลดในรูปแบบของการแจกจ่ายแบบสแตนด์อโลนและเป็นส่วนหนึ่งของ Windows SDK (ชุดพัฒนาซอฟต์แวร์ Windows) ชุดเครื่องมือ เครื่องมือวินโดวส์ในทางกลับกัน SDK มีให้ใช้งานโดยเป็นส่วนหนึ่งของโปรแกรมสมัครสมาชิก MSDN หรือสามารถดาวน์โหลดได้ฟรีเป็นการแจกจ่ายแยกต่างหากจาก msdn.microsoft.com ตามที่นักพัฒนาล่าสุดและมากที่สุด รุ่นปัจจุบันเครื่องมือดีบักสำหรับ Windows มีอยู่ใน Windows SDK โดยเฉพาะ

เครื่องมือแก้ไขจุดบกพร่องสำหรับ Windows ได้รับการอัปเดตและเผยแพร่ต่อสาธารณะค่อนข้างบ่อย และกระบวนการนี้ไม่ขึ้นอยู่กับการเผยแพร่ระบบปฏิบัติการ แต่อย่างใด ดังนั้นควรตรวจสอบเวอร์ชันใหม่เป็นระยะ

ตอนนี้เรามาดูกันว่าเครื่องมือแก้ไขจุดบกพร่องมีไว้เพื่ออะไรโดยเฉพาะ ไมโครซอฟต์ วินโดวส์:

  • ดีบักแอปพลิเคชัน บริการ ไดรเวอร์ และเคอร์เนลในเครื่อง
  • ดีบักผ่านเครือข่าย แอปพลิเคชันระยะไกล, บริการ (บริการ), ไดรเวอร์และเคอร์เนล;
  • แก้ไขข้อบกพร่องของแอปพลิเคชันที่ทำงานอยู่แบบเรียลไทม์
  • วิเคราะห์ไฟล์ดัมพ์หน่วยความจำของแอปพลิเคชัน เคอร์เนล และระบบโดยรวม
  • ทำงานร่วมกับระบบที่ใช้สถาปัตยกรรม x86/x64/Itanium
  • แก้ไขข้อบกพร่องโหมดผู้ใช้และโปรแกรมโหมดเคอร์เนล

เครื่องมือแก้ไขจุดบกพร่องสำหรับ Windows เวอร์ชันต่อไปนี้พร้อมใช้งาน: 32 บิต x86, Intel Itanium, 64 บิต x64 เราต้องการสองอัน: x86 หรือ x64

มีหลายวิธีในการติดตั้งเครื่องมือแก้ไขข้อบกพร่องสำหรับ Windows ในบทความนี้เราจะพิจารณาเฉพาะวิธีหลักเท่านั้น:

  • การติดตั้งผ่านตัวติดตั้งเว็บ
  • การติดตั้งเครื่องมือแก้ไขจุดบกพร่องสำหรับ Windows จากอิมเมจ ISO ของ Windows SDK
  • การติดตั้งเครื่องมือแก้ไขจุดบกพร่องสำหรับ Windows โดยตรงจากแพ็คเกจ dbg_amd64.msi / dbg_x86.msi

ยังไม่ชัดเจนว่าเหตุใดฉันจึงควรติดตั้งเครื่องมือแก้ไขจุดบกพร่องบนคอมพิวเตอร์ของฉัน บ่อยครั้งที่คุณต้องเผชิญกับสถานการณ์ที่การรบกวนในสภาพแวดล้อมการทำงานเป็นสิ่งที่ไม่พึงปรารถนาอย่างยิ่ง! และยิ่งกว่านั้น การติดตั้งผลิตภัณฑ์ใหม่ ซึ่งก็คือ การเปลี่ยนแปลงไฟล์รีจิสตรี/ระบบ อาจไม่เป็นที่ยอมรับโดยสิ้นเชิง ตัวอย่างได้แก่เซิร์ฟเวอร์ที่มีภารกิจสำคัญ เหตุใดนักพัฒนาจึงไม่พิจารณาตัวเลือกของแอปพลิเคชันเวอร์ชันพกพาที่ไม่จำเป็นต้องติดตั้ง
จากเวอร์ชันหนึ่งไปอีกเวอร์ชัน กระบวนการติดตั้งของแพ็คเกจเครื่องมือดีบักสำหรับ Windows ประสบกับการเปลี่ยนแปลงบางอย่าง ตอนนี้เรามาดูขั้นตอนการติดตั้งโดยตรงและดูวิธีการติดตั้งชุดเครื่องมือ

การติดตั้งเครื่องมือแก้ไขจุดบกพร่องสำหรับ Windows โดยใช้ตัวติดตั้งเว็บ

ไปที่หน้า Windows SDK Archive และค้นหาส่วนที่เรียกว่า Windows 10 และด้านล่างรายการ “Windows 10 SDK (10586) และโปรแกรมจำลองอุปกรณ์ที่มี Windows 10 Mobile (Microsoft) (เวอร์ชัน 10586.11)”

คลิกที่รายการ ติดตั้ง SDK- หลังจากคลิก ให้ดาวน์โหลดและเรียกใช้ไฟล์ sdksetup.exe ซึ่งจะเริ่มกระบวนการติดตั้ง Windows SDK แบบออนไลน์ บน ระยะเริ่มแรกโปรแกรมติดตั้งจะตรวจสอบว่ามีการติดตั้งแพ็คเกจ .NET Framework บนระบบหรือไม่ เวอร์ชันล่าสุด(วี ในขณะนี้นี่คือ 4.5) หากแพ็คเกจหายไป ระบบจะเสนอการติดตั้งและสถานีจะรีบูตเมื่อเสร็จสมบูรณ์ ทันทีหลังจากการรีบูต ในขั้นตอนการอนุญาตผู้ใช้ กระบวนการติดตั้ง Windows SDK จะเริ่มต้นขึ้นเอง

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

หลังจากติดตั้ง Debugging Tools แล้ว ตำแหน่งของหน้าต่างแก้ไขข้อบกพร่องไฟล์เมื่อใด วิธีนี้การติดตั้งของเราจะเป็นดังนี้:

  • เวอร์ชัน 64 บิต: C:\Program Files (x86)\Windows Kits\x.x\Debuggers\x64
  • เวอร์ชัน 32 บิต: C:\Program Files (x86)\Windows Kits\x.x\Debuggers\x86

* โดยที่ x.x เป็นเวอร์ชันเฉพาะของชุดพัฒนา
เราสังเกตเห็นว่าเวอร์ชัน 8 และสูงกว่านั้น เส้นทางการติดตั้งแตกต่างอย่างเห็นได้ชัดจากเวอร์ชันคลาสสิกสำหรับทุกคน รุ่นก่อนหน้าเครื่องมือแก้ไขข้อบกพร่อง?

ข้อดีอย่างมาก วิธีนี้การติดตั้งเครื่องมือแก้ไขจุดบกพร่องสำหรับ Windows เกี่ยวข้องกับการติดตั้งเครื่องมือแก้ไขจุดบกพร่องเวอร์ชันสำหรับสถาปัตยกรรมทั้งหมดในคราวเดียว

การติดตั้งเครื่องมือแก้ไขจุดบกพร่องสำหรับ Windows จาก Windows SDK ISO

วิธีการนี้เกี่ยวข้องกับการติดตั้ง Debugging Tools สำหรับ Windows โดยใช้อิมเมจการติดตั้ง Windows SDK (Software Developers Kit) แบบเต็ม จนกว่าจะถึงเวลาหนึ่งให้ดาวน์โหลด ภาพไอเอสโอสำหรับระบบที่เกี่ยวข้องนั้นสามารถทำได้บนหน้า Windows SDK Archive อย่างไรก็ตาม ในขณะนี้ คุณสามารถรับอิมเมจ ISO ของ SDK ได้โดยการเรียกใช้โปรแกรมติดตั้งเว็บ sdksetup.exe แล้วเลือก ดาวน์โหลดชุดพัฒนาซอฟต์แวร์ Windowsในหน้าต่างเริ่มตัวติดตั้ง:

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

ดังนั้นบนหน้าคุณต้องเลือกการแจกแจงที่ต้องการสำหรับฉัน (และฉันคิดว่าสำหรับหลาย ๆ คน) ในขณะนี้คือ " แพ็คเกจวินโดวส์ SDK สำหรับ Windows 7 และ .NET Framework 4" และคลิกที่ลิงค์ด้านล่าง "รับอิมเมจ ISO ของ DVD"

เมื่อทำงานกับไซต์ msdn.microsoft.com ฉันแนะนำให้ใช้ อินเทอร์เน็ตเบราว์เซอร์ Explorer เนื่องจากมีรายงานว่าผลิตภัณฑ์คู่แข่งไม่ทำงาน!

ดังนั้นจึงจำเป็นต้องเลือกตามความจำเป็นเท่านั้น โดยทั่วไปแล้ว bitness ของ Debugging Tools สำหรับ Windows จะตรงกับ bitness ของระบบ ระบบของฉันส่วนใหญ่เป็น 64 บิต ดังนั้นในกรณีส่วนใหญ่ ฉันจะดาวน์โหลดอิมเมจสำหรับระบบ 64 บิต GRMSDKX_EN_DVD.iso
หลังจากดาวน์โหลดอิมเมจแล้ว เราจำเป็นต้องทำงานกับอิมเมจ ISO ที่มีอยู่ แน่นอนว่าวิธีการดั้งเดิมคือการเขียนซีดี แต่วิธีนี้ค่อนข้างยาวและบางครั้งก็มีราคาแพง ฉันขอแนะนำให้คุณใช้ สาธารณูปโภคฟรีในการสร้างอุปกรณ์ดิสก์เสมือนในระบบ โดยส่วนตัวแล้ว ฉันชอบใช้ DEAMON Tools Lite เพื่อจุดประสงค์นี้มากกว่า บางคนอาจมีความชอบอื่น ๆ ตรงหรือเบากว่ายูทิลิตี้ขึ้นอยู่กับรสนิยมและสีอย่างที่พวกเขาพูด.. หลังการติดตั้ง เครื่องมือแดมอนแท้จริงแล้ว ฉันเพียงดับเบิลคลิกที่ไฟล์รูปภาพ GRMSDKX_EN_DVD.iso และซีดีเสมือนใหม่จะปรากฏบนระบบ:

เมื่อนั้นเท่านั้น ดับเบิลคลิกฉันเปิดใช้งานการโหลดอัตโนมัติและเริ่มการติดตั้ง Windows SDK:

เมื่อถึงเวลาเลือกส่วนประกอบที่จะติดตั้งจากรายการ เราจะปิดการใช้งานตัวเลือกทั้งหมดยกเว้นตัวเลือกที่ทำเครื่องหมายไว้ในภาพหน้าจอ วิธีนี้จะช่วยให้เราหลีกเลี่ยงข้อผิดพลาดที่ไม่จำเป็นได้ในตอนนี้


ทุกอย่างเป็นเช่นนั้น ในภาพหน้าจอมีสองตัวเลือกที่ทำเครื่องหมายไว้: “Windows Performance Toolkit” และ “Debugging Tools for Windows” เลือกทั้งสองอย่าง เพราะ Windows Performance Toolkit จะมีประโยชน์ในการทำงานของคุณอย่างแน่นอน! จากนั้นหลังจากคลิกปุ่ม "ถัดไป" การติดตั้งจะดำเนินต่อไปตามปกติ และในตอนท้ายคุณจะเห็นข้อความว่า "การติดตั้งเสร็จสมบูรณ์"
เมื่อการติดตั้งเสร็จสิ้น ไดเร็กทอรีการทำงานของแพ็คเกจ Debugging Tools สำหรับ Windows จะเป็นดังนี้:

  • สำหรับเวอร์ชัน x86:
  • สำหรับเวอร์ชัน x64:

ณ จุดนี้ การติดตั้งเครื่องมือตรวจแก้จุดบกพร่องสำหรับ Windows ถือว่าเสร็จสมบูรณ์

การติดตั้งเครื่องมือแก้ไขจุดบกพร่องสำหรับ Windows ผ่านไฟล์ .msi

หากคุณพบปัญหาในการติดตั้ง Debugging Tools สำหรับ Windows ทั้งสองเครื่อง วิธีการก่อนหน้าเรายังมีอีกหนึ่งในสต็อกที่น่าเชื่อถือที่สุดและผ่านการทดสอบตามเวลาซึ่งมาช่วยชีวิตมากกว่าหนึ่งครั้ง กาลครั้งหนึ่งก่อนที่จะรวมเข้ากับ Windows SDK เครื่องมือดีบั๊กสำหรับ Windows นั้นมีให้ใช้งานในรูปแบบ installer.msi แยกต่างหาก ซึ่งยังสามารถพบได้ แต่ในเชิงลึก การกระจายวินโดวส์ SDK. เนื่องจากเรามีอยู่แล้วในมือของเรา อิมเมจ ISO ของ Windows SDK นั้นเราไม่สามารถ mount เข้ากับระบบได้แต่เพียงเปิดโดยใช้ตัวที่คุ้นเคยอยู่แล้ว โปรแกรมเก็บถาวร WinRARหรือผลิตภัณฑ์อื่นใดที่ใช้งานได้กับเนื้อหาของดิสก์ ISO

หลังจากเปิดภาพแล้ว เราต้องไปที่ไดเร็กทอรี "ตั้งค่า" ที่อยู่ในรูท จากนั้นเลือกไดเร็กทอรีใดไดเร็กทอรี:

  • หากต้องการติดตั้งเวอร์ชัน 64 บิต: \Setup\WinSDKDebuggingTools_amd64และแตกไฟล์ dbg_amd64.msi ออกจากไดเร็กทอรีนี้
  • หากต้องการติดตั้งเวอร์ชัน 32 บิต: \Setup\WinSDKDebuggingTools และแตกไฟล์ dbg_x86.msi จากไดเร็กทอรีนี้

เมื่อการติดตั้งเสร็จสิ้น ไดเร็กทอรีการทำงานของแพ็คเกจ Debugging Tools สำหรับ Windows จะเป็นดังนี้:

  • สำหรับเวอร์ชัน x86: C:\Program Files (x86)\เครื่องมือดีบั๊กสำหรับ Windows (x86)
  • สำหรับเวอร์ชัน x64: C:\Program Files\Debugging เครื่องมือสำหรับ Windows (x64)

ณ จุดนี้ การติดตั้งเครื่องมือตรวจแก้จุดบกพร่องสำหรับ Windows ถือว่าเสร็จสมบูรณ์

ข้อมูลเพิ่มเติม

ฉันไม่รู้ว่าสิ่งนี้เชื่อมโยงกับอะไร อาจเนื่องมาจากความประมาทของฉัน แต่หลังจากติดตั้ง Debugging Tools สำหรับ Windows แล้ว ตัวติดตั้งไม่ได้กำหนดเส้นทางไปยังไดเร็กทอรีด้วยดีบักเกอร์ในเส้นทางตัวแปรเส้นทางของระบบ สิ่งนี้กำหนดข้อจำกัดบางประการในการเริ่มงานการดีบักต่างๆ โดยตรงจากคอนโซล ดังนั้นหากไม่มีเส้นทางฉันจะเขียนลงในหน้าต่างอย่างอิสระ ตัวแปรสภาพแวดล้อมเส้นทางสู่เครื่องมือแก้ไขข้อบกพร่อง:

  • C:\Program Files (x86)\Windows Kits\10\Debuggers\x86
  • C:\Program Files (x86)\Windows Kits\10\Debuggers\x64

* ในกรณีของคุณ เส้นทางอาจแตกต่างกันเนื่องจากการใช้ระบบปฏิบัติการที่มีขนาดบิตต่างกัน และเนื่องจาก โดยใช้ SDKอีกเวอร์ชันหนึ่ง

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

องค์ประกอบของเครื่องมือดีบักสำหรับ Windows

และสุดท้าย นี่คือองค์ประกอบของ Debugging Tools สำหรับ Windows:

ไฟล์ วัตถุประสงค์
adplus.doc เอกสารประกอบสำหรับยูทิลิตี้ ADPlus
adplus.exe แอปพลิเคชันคอนโซลที่ทำงานของดีบักเกอร์ cdb โดยอัตโนมัติเพื่อสร้างดัมพ์และไฟล์บันทึกสำหรับกระบวนการตั้งแต่หนึ่งกระบวนการขึ้นไป
agestore.exe ยูทิลิตี้สำหรับการลบไฟล์ที่ล้าสมัยออกจากที่เก็บข้อมูลที่ใช้โดยเซิร์ฟเวอร์สัญลักษณ์หรือเซิร์ฟเวอร์ต้นทาง
เบรกอิน.exe ยูทิลิตี้ที่ช่วยให้คุณสามารถส่งชุดตัวแบ่งแบบกำหนดเองไปยังกระบวนการได้ คล้ายกับการกด CTRL+C
cdb.exe ดีบักเกอร์คอนโซลโหมดผู้ใช้
แปลงสโตร์.exe ยูทิลิตี้สำหรับการแปลงสัญลักษณ์จาก 2 ระดับเป็น 3 ระดับ
dbengprx.exe Repeater (พร็อกซีเซิร์ฟเวอร์) สำหรับการดีบักระยะไกล
dbgrpc.exe ยูทิลิตี้สำหรับแสดงข้อมูลสถานะการโทร RPC
dbgsrv.exe กระบวนการเซิร์ฟเวอร์ที่ใช้สำหรับการดีบักแบบรีโมต
dbh.exe ยูทิลิตี้สำหรับแสดงข้อมูลเกี่ยวกับเนื้อหาของไฟล์สัญลักษณ์
dumpchk.exe ยูทิลิตี้ตรวจสอบการถ่ายโอนข้อมูล ยูทิลิตี้สำหรับ ตรวจสอบอย่างรวดเร็วไฟล์ดัมพ์
dumpexam.exe ยูทิลิตี้สำหรับการวิเคราะห์การถ่ายโอนข้อมูลหน่วยความจำ ผลลัพธ์จะถูกส่งออกไปที่ %SystemRoot%\MEMORY.TXT
gflags.exe ผู้แก้ไขแฟล็กระบบส่วนกลาง ยูทิลิตี้นี้จะจัดการคีย์รีจิสทรีและการตั้งค่าอื่นๆ
i386kd.exe กระดาษห่อสำหรับ kd กาลครั้งหนึ่งนี่คือสิ่งที่ kd ถูกเรียกให้เปิดระบบ ใช้ระบบปฏิบัติการ Windows NT/2000 สำหรับเครื่อง x86? อาจเป็นเพราะเหตุผลด้านความเข้ากันได้
ia64kd.exe กระดาษห่อสำหรับ kd ครั้งหนึ่งเคยเรียกว่า kd สำหรับระบบที่ใช้ Windows NT/2000 สำหรับเครื่อง ia64 หรือไม่ อาจเป็นเพราะเหตุผลด้านความเข้ากันได้
kd.exe ดีบักเกอร์คอนโซลโหมดเคอร์เนล
kdbgctrl.exe เครื่องมือจัดการการดีบักเคอร์เนล ยูทิลิตี้สำหรับจัดการและกำหนดค่าการเชื่อมต่อการดีบักเคอร์เนล
kdsrv.exe เซิร์ฟเวอร์การเชื่อมต่อสำหรับ KD ยูทิลิตี้นี้เป็นแอปพลิเคชั่นขนาดเล็กที่ทำงานและรอการเชื่อมต่อระยะไกล kd ทำงานบนไคลเอนต์และเชื่อมต่อกับเซิร์ฟเวอร์นี้เพื่อการดีบักแบบรีโมต ทั้งเซิร์ฟเวอร์และไคลเอนต์ต้องมาจากแอสเซมบลีของเครื่องมือตรวจแก้จุดบกพร่องเดียวกัน
ฆ่า.exe ยูทิลิตี้สำหรับการสิ้นสุดกระบวนการ
รายการ.exe ยูทิลิตี้สำหรับแสดงเนื้อหาของไฟล์บนหน้าจอ ยูทิลิตี้ขนาดเล็กนี้มีวัตถุประสงค์เดียวคือการดูข้อความขนาดใหญ่หรือไฟล์บันทึก ใช้พื้นที่หน่วยความจำน้อยเนื่องจากโหลดข้อความเป็นส่วนๆ
logger.exe ดีบักเกอร์ขนาดเล็กที่สามารถทำงานได้เพียงกระบวนการเดียวเท่านั้น ยูทิลิตี้นี้จะแทรก logexts.dll ลงในพื้นที่กระบวนการ ซึ่งจะบันทึกการเรียกใช้ฟังก์ชันทั้งหมดและการดำเนินการอื่นๆ ของโปรแกรมที่กำลังศึกษาอยู่
logviewer.exe ยูทิลิตี้สำหรับการดูบันทึกที่บันทึกโดยดีบักเกอร์ logger.exe
ntsd.exe ดีบักเกอร์สัญลักษณ์ Microsoft NT (NTSD) ดีบักเกอร์เหมือนกับ cdb ยกเว้นว่าจะสร้างหน้าต่างข้อความเมื่อเปิดใช้งาน เช่นเดียวกับ cdb ntsd สามารถดีบั๊กทั้งแอปพลิเคชันคอนโซลและแอปพลิเคชันกราฟิก
pdbcopy.exe ยูทิลิตี้สำหรับการลบสัญลักษณ์ส่วนตัวออกจากไฟล์สัญลักษณ์ ควบคุมสัญลักษณ์สาธารณะที่รวมอยู่ในไฟล์สัญลักษณ์
ระยะไกล.exe ยูทิลิตี้การดีบักระยะไกลและ การควบคุมระยะไกลดีบักเกอร์คอนโซลใด ๆ KD, CDB และ NTSD ช่วยให้คุณสามารถเรียกใช้ดีบักเกอร์คอนโซลเหล่านี้ทั้งหมดจากระยะไกล
rtlist.exe โปรแกรมดูงานระยะไกล ยูทิลิตี้นี้ใช้เพื่อแสดงรายการ กระบวนการทำงานอยู่ผ่านกระบวนการเซิร์ฟเวอร์ DbgSrv
symchk.exe ยูทิลิตี้สำหรับการดาวน์โหลดสัญลักษณ์จากเซิร์ฟเวอร์สัญลักษณ์ของ Microsoft และสร้างแคชสัญลักษณ์ในเครื่อง
ซิมสโตร์.exe ยูทิลิตี้สำหรับการสร้างเครือข่ายหรือ ที่จัดเก็บในตัวเครื่องตัวละคร (2 ระดับ/3 ระดับ) ที่เก็บข้อมูลสัญลักษณ์เป็นไดเร็กทอรีเฉพาะบนดิสก์ซึ่งสร้างขึ้นตามโครงสร้างเฉพาะและมีสัญลักษณ์ โครงสร้างของโฟลเดอร์ย่อยที่มีชื่อเหมือนกันกับชื่อของส่วนประกอบจะถูกสร้างขึ้นในไดเร็กทอรีรากของสัญลักษณ์ ในทางกลับกัน แต่ละโฟลเดอร์ย่อยเหล่านี้จะมีโฟลเดอร์ย่อยที่ซ้อนกันซึ่งมีชื่อพิเศษที่ได้รับจากการแฮช ไฟล์ไบนารี- ยูทิลิตี้ Symstore จะสแกนโฟลเดอร์คอมโพเนนต์และเพิ่มคอมโพเนนต์ใหม่ลงในที่เก็บสัญลักษณ์ ซึ่งไคลเอนต์สามารถดึงข้อมูลเหล่านั้นได้ ว่ากันว่า Symstore ใช้เพื่อรับสัญลักษณ์จากคลังเก็บของ 0 ชั้น และใส่ไว้ในคลังเก็บของ 2 ชั้น/3 ชั้น
tlist.exe โปรแกรมดูงาน ยูทิลิตี้สำหรับแสดงรายการกระบวนการที่กำลังทำงานอยู่ทั้งหมด
umdh.exe ยูทิลิตี้ฮีปดัมพ์โหมดผู้ใช้ ยูทิลิตี้สำหรับการวิเคราะห์ฮีปของกระบวนการที่เลือก ช่วยให้คุณสามารถแสดงพารามิเตอร์ต่างๆ สำหรับฮีป
usbview.exe โปรแกรมดู USB ยูทิลิตี้ตัวแสดง อุปกรณ์ USBเชื่อมต่อกับคอมพิวเตอร์
vmdemux.exe อุปกรณ์แยกส่งสัญญาณ เครื่องเสมือน- สร้างไปป์ที่มีชื่อหลายรายการสำหรับการเชื่อมต่อ COM เดียว ช่องสัญญาณใช้ในการดีบักส่วนประกอบต่างๆ ของเครื่องเสมือน
windbg.exe โหมดผู้ใช้และดีบักเกอร์โหมดเคอร์เนลพร้อม GUI

ดีบัก.exe- โปรแกรมดีบักเกอร์ที่ใช้ในการตรวจสอบและดีบักไฟล์ปฏิบัติการ

ใช้กับระบบปฏิบัติการ MS-ดอส - สำหรับระบบปฏิบัติการเวอร์ชันใหม่กว่า

ทำงานผ่านโปรแกรมจำลอง MS-ดอส และมี โอกาสที่จำกัด- เรียกผ่านบรรทัดคำสั่ง

DEBUG [[ไดรฟ์:][เส้นทาง]ชื่อไฟล์ [ตัวเลือก]]

ตัวอย่างเช่น: DEBUG C:\...\My.com

โปรแกรมนี้เป็นแอปพลิเคชันคอนโซลและได้รับการออกแบบเพื่อสร้างหรือเปลี่ยนรหัสไฟล์ ด้วยคุณสามารถสร้างได้ แอปพลิเคชั่นที่เรียบง่ายภายใต้ MS-ดอสและติดตามผลการปฏิบัติงานของพวกเขา ดีบักเกอร์นี้อยู่ที่ระดับต่ำสุดของคอมไพเลอร์ ผู้ประกอบ- แต่ก็มีความสามารถค่อนข้างดี เช่น การดูและการเปลี่ยนหน่วยความจำ, การรับสถานะรีจิสเตอร์

คำสั่ง Debug.exe

กฎสำหรับชุดคำสั่ง debug.exe:

· Debug.exe ไม่คำนึงถึงขนาดตัวพิมพ์

· ช่องว่างในคำสั่งใช้เพื่อแยกพารามิเตอร์เท่านั้น

· ตัวเลขที่ป้อนจะต้องอยู่ในระบบเลขฐานสิบหก โดยไม่มีตัวอักษร h ต่อท้าย

· ส่วนและออฟเซ็ตเขียนโดยใช้โคลอน ในรูปแบบเซ็กเมนต์:ออฟเซ็ต เช่น CS:3C1 (ออฟเซ็ต 3C1h ในส่วนของโค้ด) หรือ 40:17 (ออฟเซ็ต 17h ในส่วนที่มีที่อยู่เริ่มต้นคือ 40h)

หลังจากโหลดดีบักเกอร์แล้ว พร้อมท์ที่ดูเหมือนเครื่องหมายยัติภังค์จะปรากฏบนหน้าจอ ลงทะเบียน ซี.เอส., ดี.เอส., อีเอส, เอสเอสในขณะนี้เริ่มต้นด้วยที่อยู่ของคำนำหน้า 256 ไบต์ของส่วนของโปรแกรม และพื้นที่ทำงานในหน่วยความจำจะเริ่มต้นด้วยที่อยู่ของคำนำหน้านี้ + 100h ทีม ดีบัก.exeจะถูกป้อนทันทีหลังจากการเชิญ ณ ตำแหน่งที่มีเคอร์เซอร์กำกับไว้ แต่ละคำสั่งประกอบด้วยตัวระบุและพารามิเตอร์ ตัวระบุประกอบด้วยตัวอักษรหนึ่งตัว

ตารางที่ 1. สรุปคำสั่ง debug.exe ทั้งหมด

ทีม คำอธิบาย รูปแบบ
A (การประกอบ) การแปลคำสั่งแอสเซมเบลอร์เป็นรหัสเครื่อง ที่อยู่เริ่มต้นคือ CS:0100h<адрес_начала_кода>]
อ[ ค (เปรียบเทียบ) การเปรียบเทียบเนื้อหาของพื้นที่หน่วยความจำทั้งสอง ค่าเริ่มต้นคือ DS<начальный_адрес_1>คำสั่งระบุความยาวของส่วนหรือช่วงของที่อยู่<длина> <начальный_адрес_2>ค<начальный_адрес_1> <конечный_адрес_1> <начальный_адрес_2>
แสดงผลเนื้อหาของพื้นที่หน่วยความจำในรูปแบบเลขฐานสิบหกและ ASCII ค่าเริ่มต้นคือ DS; คุณสามารถระบุความยาวหรือช่วงได้<начальный_адрес>ด[
] D [ที่อยู่เริ่มต้น end_address] อี (เข้า) การป้อนข้อมูลหรือคำสั่งรหัสเครื่องลงในหน่วยความจำ<адрес> [<инструкции/данные>]]
ค่าเริ่มต้นคือ DS อี [ เอฟ (เติม)<начальный_адрес_1>คำสั่งระบุความยาวของส่วนหรือช่วงของที่อยู่<длина> "<данные>เติมพื้นที่หน่วยความจำด้วยข้อมูลจากรายการ ค่าเริ่มต้นคือ DS<начальный_адрес> <конечный_адрес> "<данные>"
คุณสามารถใช้ทั้งความยาวและช่วง เอฟ " ฟ<начальный_адрес>] <адрес_останова> [<адрес_останова> ...]
จี (ไป) ดำเนินการโปรแกรมภาษาเครื่องดีบั๊กจนกระทั่งถึงจุดพักที่ระบุ ค่าเริ่มต้นคือ CS ตรวจสอบให้แน่ใจว่า IP มีที่อยู่ที่ถูกต้อง<величина_1> <величина_2>
ก[= H (เลขฐานสิบหก) คำนวณผลรวมและผลต่างของค่าเลขฐานสิบหกสองค่า<адрес_порта>
ชม ฉัน (อินพุต) อ่านและส่งออกหนึ่งไบต์จากพอร์ต<адрес_в_памяти_для_загрузки>ฉัน<адрес_в_памяти_для_загрузки> [<номер_диска> <начальный_сектор> <количество_секторов>]]
ลิตร (โหลด) การโหลดไฟล์หรือข้อมูลจากเซกเตอร์ดิสก์ลงในหน่วยความจำ ค่าเริ่มต้นคือ CS:100h สามารถระบุไฟล์ได้โดยใช้คำสั่ง N หรืออาร์กิวเมนต์เมื่อเรียกใช้ debug.exe<начальный_адрес>คำสั่งระบุความยาวของส่วนหรือช่วงของที่อยู่<длина> <адрес_назначения>ลิตร [<начальный_адрес> <конечный_адрес> <адрес_назначения>
] ล [ เอ็ม (ย้าย) การคัดลอกเนื้อหาของเซลล์หน่วยความจำ ค่าเริ่มต้นคือ DS<имя_файла>
คุณสามารถระบุได้ทั้งความยาวและช่วง ม<адрес_порта> <байт>
ยังไม่มี (ชื่อ) การระบุชื่อไฟล์สำหรับคำสั่ง L และ W เอ็น<адрес_начала>] [<количество_инструкций>]
O(เอาท์พุต) การส่งไบต์ไปยังพอร์ต โอ
ป (กำลังดำเนินการ) ดำเนินการคำสั่ง CALL, LOOP, INT หรือคำสั่งสตริงที่ทำซ้ำได้ด้วยคำนำหน้า REPnn ย้ายไปยังคำสั่งถัดไป พ[=<имя_регистра>
ถาม (ออก) กำลังปิด debug.exe ถาม<начальный_адрес>คำสั่งระบุความยาวของส่วนหรือช่วงของที่อยู่<длина> "<данные>ร (ลงทะเบียน)<начальный_адрес> <конечный_адрес> "<данные>"
ส่งออกเนื้อหาของรีจิสเตอร์และคำสั่งถัดไป เอส (ค้นหา)<адрес_начала>] [<количество_выполняемых_команд>]
ค้นหาอักขระจากรายการในหน่วยความจำ ค่าเริ่มต้นคือ DS คุณสามารถระบุได้ทั้งความยาวและช่วง ส<начальный_адрес>“ส<начальный_адрес конечный_адрес>]
ที (ติดตาม) การทำงานของโปรแกรมทีละขั้นตอน เช่นเดียวกับคำสั่ง P คู่เริ่มต้นคือ CS:IP โปรดทราบว่าหากต้องการทำการขัดจังหวะ ควรใช้คำสั่ง P ที [=<адрес> [<номер_диска> <начальный_сектор> <количество_секторов>]]


U (ยังไม่ได้ประกอบ)

การแยกชิ้นส่วนรหัสเครื่อง ค่าเริ่มต้นคือคู่ CS:IP ขออภัย debug.exe ไม่สามารถแยกส่วนคำสั่งเฉพาะสำหรับโปรเซสเซอร์ 80286+ ได้อย่างถูกต้อง แม้ว่าจะยังคงทำงานได้อย่างถูกต้องก็ตาม คุณ [] คุณ [ คุณ [ว (เขียน)

เขียนไฟล์จาก debug.exe; จำเป็นต้องระบุชื่อไฟล์ด้วยคำสั่ง N หากยังไม่ได้โหลด และโปรแกรมจะบันทึกเป็นไฟล์ .COM เท่านั้น!

ว[ ส่วน:ชดเชย.

· การแสดงย่อหน้าเป็นเลขฐานสิบหก (16 ไบต์) โดยเริ่มต้นด้วยไบต์ที่ระบุที่จุดเริ่มต้นของบรรทัด

· อักขระของย่อหน้าเดียวกันในรูปแบบ ASCII

ที่อยู่ที่ระบุในบรรทัดอ้างอิงถึงไบต์แรกในย่อหน้าโดยเฉพาะ และต้องคำนวณที่อยู่ของไบต์ถัดไปโดยแยกจากกัน การแสดงเลขฐานสิบหกประกอบด้วยอักขระสองตัวในแต่ละไบต์ และไบต์จะถูกคั่นด้วยช่องว่างเพื่อให้อ่านง่ายขึ้น นอกจากนี้ควรสังเกตว่าไบต์ที่แปดและเก้าถูกคั่นด้วยยัติภังค์ ดังนั้นจึงแบ่งย่อหน้าออกเป็นสองส่วนและทำให้ง่ายต่อการคำนวณที่อยู่ของไบต์ในย่อหน้า

เคล็ดลับทีม D ที่เป็นประโยชน์

ตรวจสอบพอร์ตขนานและพอร์ตอนุกรม

16 ไบต์แรกของพื้นที่ข้อมูล BIOS มีที่อยู่ของพอร์ตขนานและพอร์ตอนุกรม ดังนั้น เมื่อใช้คำสั่งต่อไปนี้ คุณสามารถตรวจสอบพอร์ตเหล่านี้ได้:

แปดไบต์แรกที่พิมพ์ระบุที่อยู่พอร์ตอนุกรม COM1-COM4- 8 ไบต์ถัดไประบุที่อยู่ของพอร์ตขนาน LPT1-LPT4- ตัวอย่างเช่น หากคอมพิวเตอร์ของคุณมีพอร์ตขนานหนึ่งพอร์ต สองไบต์แรกน่าจะเป็น: 7803 ที่อยู่พอร์ตจะเขียนในลำดับย้อนกลับ เช่น 0378.

การตรวจสอบอุปกรณ์

สองไบต์แรกซึ่งอยู่ใน BIOS ที่อยู่ 410h มีข้อมูลเกี่ยวกับฮาร์ดแวร์ที่ติดตั้งในระบบ เราค้นหาไบต์เหล่านี้ด้วยคำสั่ง:

สมมติว่าสองไบต์แรกเป็น 23 44 ลองถอดรหัสไบต์เหล่านี้เพื่อรับข้อมูลเกี่ยวกับ อุปกรณ์ที่ติดตั้ง- ในการดำเนินการนี้ ให้ย้อนกลับไบต์เหล่านี้ (44 23) แล้วแปลงเป็น ระบบไบนารี่การคำนวณ เราได้รับ:

ค่าบิต
ตำแหน่งบิต

บิตเหล่านี้หมายถึงอะไร? มาถอดรหัสต่อไป:

การตรวจสอบสถานะของการลงทะเบียนคีย์บอร์ด

ในพื้นที่ข้อมูล ไบออสตามที่อยู่ 417ชมไบต์แรกตั้งอยู่ซึ่งเก็บสถานะของการลงทะเบียนคีย์บอร์ด ปิดเครื่อง นัมล็อค และ แคปล็อค จากนั้นพิมพ์คำสั่ง:

ไบต์แรกจะเป็น 00 โดยการเปิดเครื่อง นัมล็อคและ แคปล็อคให้ดำเนินการคำสั่งอีกครั้ง ตอนนี้ไบต์แรกควรเท่ากับ 60 ได้มีการทดลองแล้วว่าเมื่อเปิดใช้งาน นัมล็อคไบต์แรกคือ 20 และเมื่อใด แคปล็อค - 40.

การตรวจสอบสถานะระบบวิดีโอ

ตามที่อยู่ 449ชมวี ไบออสเป็นพื้นที่ข้อมูลวิดีโอแรก เพื่อตรวจสอบเราพิมพ์:

ไบต์แรกแสดงโหมดวิดีโอปัจจุบัน (เช่น 03 - สี) และไบต์ที่สอง - จำนวนคอลัมน์ (เช่น โหมดคอลัมน์ 50 - 80) สามารถดูจำนวนบรรทัดได้ที่ 484ชม (40:84).

ตรวจสอบลิขสิทธิ์ BIOS และหมายเลขซีเรียล

ข้อมูลลิขสิทธิ์สำหรับ ไบออสสร้างขึ้นใน รอมไบออสตามที่อยู่ FE00:0- บรรทัดลิขสิทธิ์สามารถพบได้ง่ายในลำดับ ASCII และ หมายเลขซีเรียล- เป็นเลขฐานสิบหก แม้ว่าบรรทัดลิขสิทธิ์อาจยาวและอาจไม่พอดีกับพื้นที่หน่วยความจำที่จัดสรรไว้ ในกรณีนี้ คุณควรป้อนอีกครั้ง คุณ [.

ตรวจสอบวันที่ผลิต BIOS

วันที่นี้จะถูกบันทึกไว้ใน รอมไบออสเริ่มต้นจากที่อยู่ FFFF:5- หลังจากดำเนินการคำสั่งที่เกี่ยวข้องแล้ว ลำดับ ASCII จะมีวันที่นี้ซึ่งเขียนในรูปแบบ ดด/วว/ปปป.

การแทรกโปรแกรมลงในหน่วยความจำโดยตรงโดยใช้ debug.exe

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

MOV ขวาน, 0123 ; รหัส B82301: ป้อนค่า 0123h ใน AX

เพิ่มขวาน 0025 ; รหัส 052500: เพิ่ม 0225h เข้ากับค่า AX

MOV BX, ขวาน ; รหัส 8BD8: ใส่ค่า AX ใน BX

เพิ่ม BX, ขวาน ; รหัส 03D8: เพิ่มค่าของ AX ให้กับ BX

MOV CX, BX ; รหัส 8BCB: ใส่ค่า BX ลงใน CX

ย่อย CX, ขวาน ; รหัส 2BC8: ลบค่าของ AX จาก CX

ย่อยขวาน, ขวาน ; รหัส 2BC0 : ล้าง AX

เจเอ็มพี 100 ; รหัส EBEE: ไปที่จุดเริ่มต้นของโปรแกรม

อย่างที่คุณเห็น แต่ละคำสั่งของเครื่องมีความยาว 1 ถึง 3 ไบต์ ไบต์แรกระบุการดำเนินการ ไบต์ถัดไประบุตัวถูกดำเนินการ การทำงานของโปรแกรมจะเริ่มต้นตามคำสั่งแรกและส่งต่อคำสั่งทั้งหมดตามลำดับ ตอนนี้คุณสามารถเข้าสู่โปรแกรมลงในหน่วยความจำได้ มาแบ่งรหัสเครื่องออกเป็นสามส่วนของหกไบต์แล้วป้อนแต่ละส่วนโดยใช้คำสั่ง อีและเริ่มจากที่อยู่ คส:100.

ตอนนี้เมื่อโปรแกรมเข้าสู่หน่วยความจำแล้ว เรามาลองควบคุมการทำงานของมันกันดีกว่า ก่อนอื่นมาตรวจสอบกันก่อน สถานะปัจจุบันรีจิสเตอร์และแฟล็ก โดยป้อนคำสั่ง - ดีบักเกอร์จะส่งออกเนื้อหาของรีจิสเตอร์ในรูปแบบเลขฐานสิบหก เนื้อหาของรีจิสเตอร์อาจแตกต่างกันไปในแต่ละเครื่อง

ดังนั้นอย่างที่คุณเห็น ดีบัก.exeส่วนเริ่มต้น ดี.เอส., อีเอส, เอสเอส, ซี.เอส.ที่อยู่เดียวกัน ลงทะเบียน ไอพีประกอบด้วย 0100 ซึ่งบ่งชี้ว่าคำสั่งถูกดำเนินการจากออฟเซ็ต 100ชมค่อนข้าง ซี.เอส.(และเราเพียงระบุที่อยู่นี้เมื่อป้อนคำแนะนำลงในหน่วยความจำ)

ค่าของโอเวอร์โฟลว์, ทิศทาง, อินเตอร์รัปต์, เครื่องหมาย, ศูนย์, การพกพาพิเศษ, ความเท่าเทียมกันและการพกพาจะถูกระบุที่นี่ด้วย:

หลังจากการลงทะเบียนและสถานะแฟล็ก debug.exe จะแสดงข้อมูลเกี่ยวกับคำสั่งแรกที่จะดำเนินการ:

· ที่อยู่ของคำสั่ง ในกรณีของเราคือ 0B12:0100 โดยที่ 0B12 คือที่อยู่ของส่วนของโค้ด

· รหัสเครื่องจักรที่สอดคล้องกับคำสั่งนี้ (B82301)

· คำสั่งจริงที่เขียนด้วยแอสเซมเบลอร์ (MOV AX,0123)

ตอนนี้หลังจากวิเคราะห์เนื้อหาของรีจิสเตอร์และแฟล็กแล้ว เรามาดำเนินการโปรแกรมกันดีกว่า เราจะรันโปรแกรมทีละขั้นตอนโดยใช้คำสั่ง - การใช้คำสั่งเป็นครั้งแรก เรากำลังปฏิบัติตามคำแนะนำ มธ- นี่คือรหัสเครื่องของตัวถูกดำเนินการคำสั่ง - 2301 - สถานที่ดำเนินการ 23 วี อัล(น้องครึ่ง ขวาน) อ 01 - วี เอ.เอช.(อาวุโส). หลังจากนั้น ดีบัก.exeพิมพ์ข้อมูลการลงทะเบียนอีกครั้ง:

ตอนนี้ ขวานประกอบด้วย 0123น, ไอพี0103ชม(ดังนั้นความยาวของคำสั่งที่ดำเนินการ: 0103ชม - 01.00 น = 3 ไบต์) และคำสั่งถัดไประบุการดำเนินการ เพิ่ม- จึงดำเนินการตามคำสั่งซ้ำแล้วซ้ำเล่า เราจะไปถึงคำสั่งสุดท้าย เจเอ็มพี 100- เธอจะตั้งค่าการลงทะเบียน ไอพีวี 100ชม, และ ดีบัก.exeจะกลับไปที่จุดเริ่มต้นของโปรแกรม กลับมาที่จุดเริ่มต้นของโปรแกรมก็ควรสังเกตว่าใน ดี.เอส., อีเอส, เอสเอสและ ซี.เอส.มีที่อยู่เดียวกัน ประเด็นก็คือว่า ดีบัก.exeถือว่าโปรแกรมที่เข้ามาเป็นเพียงโปรแกรมเท่านั้น .คอม- และในโปรแกรมต่างๆ .คอมไม่เหมือน .EXE,สแตก, รหัสและข้อมูลจะถูกจัดเก็บไว้ในส่วนเดียว

การประกอบและการถอดชิ้นส่วน

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

ทีม ขอคำแนะนำในภาษาแอสเซมบลีและแปลงเป็นรหัสเครื่อง ขั้นแรก เราจะเริ่มต้นที่อยู่เริ่มต้นสำหรับการป้อนคำแนะนำ (100 ชม.):

ดีบักเกอร์จะพิมพ์ที่อยู่ส่วนของโค้ดและออฟเซ็ต (เช่น 13F2:0100- ตอนนี้เราต้องเข้าแล้ว ทำตามคำแนะนำในแอสเซมเบลอร์เข้าสู่หน่วยความจำ หลังจากแต่ละบรรทัดโดยการกด เข้า:

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

มาดูขั้นตอนการแยกชิ้นส่วนกันต่อ และยกตัวอย่างโปรแกรมที่เราเพิ่งแนะนำไป เราใช้ที่อยู่ของคำแนะนำแรกและคำแนะนำสุดท้ายเพื่อระบุช่วงที่เราจะแยกชิ้นส่วน เช่น 100ชมและ 107ชม.

หลังจากรันคำสั่งนี้แล้ว ดีบัก.exeจะแสดงคำสั่งในช่วงที่กำหนด ในภาษาแอสเซมบลี ในรหัสเครื่อง รวมถึงที่อยู่ของแต่ละคำสั่ง:

การบันทึกโปรแกรมลงดิสก์

ขั้นแรกให้ตั้งชื่อไฟล์:

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

ทางออกจะดำเนินการตามคำสั่ง ถาม- ตัวอย่าง:

0B3B:0100 ขวานเคลื่อนที่,1234

0B3B:0103 โมฟ อา 4c

0B3B:0105 อินท์ 21

0B3B:0100 B83412 MOV ขวาน,1234

0B3B:0103 B44C MOV AH,4C

0B3B:0105 CD21 INT 21

AX=0000 BX=0000 CX=0007 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000

DS=0B3B ES=0B3B SS=0B3B CS=0B3B IP=0100 NV ขึ้น EI PL NZ NA PO NC

0B3B:0100 B83412 MOV ขวาน,1234

เขียน 00007 ไบต์

เพื่อให้บรรลุเป้าหมายนี้ งานห้องปฏิบัติการคุณจะต้องมีคำสั่งแอสเซมเบลอร์หลายคำสั่ง:

โมฟ อ่า<шестнадцатиричное число>- เข้าสู่การลงทะเบียน เอ.เอช.ตัวเลข 02 เพื่อระบุฟังก์ชั่นของระบบ - แสดงสัญลักษณ์บนหน้าจอ

MOV ดีแอล<шестнадцатиричное число>- เข้าสู่การลงทะเบียน ดี.แอล.รหัสอักขระ

INT 21 เป็นการขัดจังหวะ DOS หลัก (ขั้นตอน) ที่ใช้งานหลายอย่าง ฟังก์ชั่นต่างๆ- หมายเลขฟังก์ชันจะถูกเขียนล่วงหน้าลงในรีจิสเตอร์ AH เพื่อพิมพ์อักขระบนหน้าจอ - ในการลงทะเบียน AH ฟังก์ชัน 02 ในขณะที่เข้า ดี.แอล.เขียนรหัสสัญลักษณ์ล่วงหน้า

INT 20 - การขัดจังหวะ DOS ซึ่งออกจากโปรแกรม (จากโปรแกรม COM)

ตัวอย่าง:

แสดงสัญลักษณ์ "*" บนหน้าจอ

มอฟ AH,02 ; ฟังก์ชั่นระบบ 02 - แสดงสัญลักษณ์บนหน้าจอ

มอฟ ดีแอล,2เอ ; รหัส ASCII สำหรับเครื่องหมายดอกจัน

ภายใน 21 ชม. ; ขัดจังหวะสำหรับเอาต์พุต "*"

ภายใน 20 ชม. ; ออกจากโปรแกรม

งานภาคปฏิบัติ

เป้า

ขอแนะนำดีบักเกอร์ debug.exe การได้รับทักษะการปฏิบัติในการทำงานกับโปรแกรมนี้

อุปกรณ์:

คอมพิวเตอร์ส่วนบุคคลอยู่ภายใต้การควบคุม ระบบปฏิบัติการหน้าต่าง

ซอฟต์แวร์:

โปรแกรมดีบัก

คำถามสำหรับการรับสมัคร

1. โปรแกรม Debug มีไว้เพื่ออะไร?

2. จะรันโปรแกรมนี้ได้อย่างไร?

3. มีการป้อนคำสั่งลงใน Debug อย่างไร?

4. บัตรประจำตัวคืออะไร?

5. โปรแกรมเข้าสู่ Debug ได้อย่างไร?

ออกกำลังกาย

· ศึกษาเนื้อหาทางทฤษฎี

· ดำเนินการคำสั่งที่อธิบายไว้ตลอดทั้งข้อความ

· หาผลรวมและผลต่างของตัวเลข 2 ตัว โดยตัวที่ 1 คือตัวเลขในกลุ่ม (แปลงเป็นเลขฐาน 16) ตัวที่ 2 คือตัวเลขที่อยู่ตรงข้ามกับตัวเลขของอักษรตัวแรกของนามสกุลในตัวอักษร (เลขลบใน รหัสเพิ่มเติม- แปลงผลรวมและผลต่างให้อยู่ในรูปทศนิยม

· ดูเนื้อหาของการลงทะเบียนไมโครโปรเซสเซอร์ รวมถึงแฟล็ก และจดไว้ในโปรโตคอล แต่ละรีจิสเตอร์ทำหน้าที่อะไร? -

· เขียนหมายเลขแรก (จากงาน 3) ลงในรีจิสเตอร์ AX และหมายเลขที่สอง (จากงาน 3) ลงในรีจิสเตอร์ BX เข้ามา แรมในส่วนของโค้ด (ออฟเซ็ต 100) คำสั่งเครื่องเพื่อเพิ่มรีจิสเตอร์ AX และ BX ดูแบบฟอร์มแอสเซมเบลอร์บนหน้าจอ รันคำสั่งนี้และแปลงผลลัพธ์เป็นรูปแบบทศนิยม

· ป้อน RAM ในส่วนของโค้ด (ออฟเซ็ต 100) ชุดคำสั่งแอสเซมเบลอร์เพื่อพิมพ์อักขระบนหน้าจอ - อักษรตัวแรกของนามสกุลของคุณ ตรวจสอบโปรแกรมใน DEBUG จากนั้นเขียนลงดิสก์เป็นไฟล์ .COM ขนาดของโปรแกรมคืออะไร? เรียกใช้จาก DOS

· อธิบายการดำเนินการทั้งหมดในรายงาน

1. ชื่อผลงาน.

2. วัตถุประสงค์ของงาน

3. เครื่องมือและอุปกรณ์

4. ข้อมูลทางทฤษฎีโดยย่อ

5. คำอธิบายของการดำเนินการที่ได้ดำเนินการ

6. ข้อความของโปรแกรมที่สร้างขึ้น

7. ข้อสรุป

คำถามเพื่อความปลอดภัย

1. คำสั่งใดป้อนข้อมูลรหัสเครื่องหรือคำสั่งลงในหน่วยความจำ

2. จะเปรียบเทียบเนื้อหาของพื้นที่หน่วยความจำทั้งสองได้อย่างไร?

3. จะเติมข้อมูลจากรายการลงในพื้นที่หน่วยความจำได้อย่างไร?

4. คำสั่งใดรันโปรแกรมที่ถูกดีบั๊กในภาษาเครื่อง?

5. คำสั่งใดเขียนไฟล์จาก Debug?

6. การประกอบและการแยกชิ้นส่วนดำเนินการอย่างไร?

Android Debug Bridge (adb) เป็นโปรแกรมคอนโซลที่ให้คุณแก้ไขข้อบกพร่องได้ อุปกรณ์เคลื่อนที่บน Android รวมถึงโปรแกรมจำลอง

คำอธิบาย

ยูทิลิตี้นี้ช่วยลดความยุ่งยากในการติดตั้งและการดีบักแอปพลิเคชันอย่างมาก และยังให้การเข้าถึง Unix Shell อีกด้วย ส่วนหลังสามารถใช้เพื่อเรียกใช้คำสั่งที่จำเป็นบนอุปกรณ์ได้ เหนือสิ่งอื่นใด โปรแกรมนี้สามารถใช้เพื่อปลดล็อคสมาร์ทโฟนโดยเปิดใช้งานโหมดแก้ไขจุดบกพร่อง อย่างไรก็ตามเป็นที่น่าสังเกตว่า Android Debug Bridge รองรับการทำงานกับอุปกรณ์ Android ใด ๆ โดยมีเงื่อนไขว่าฟังก์ชันที่จำเป็นไม่ได้ถูกบล็อกโดยผู้ผลิต

โปรแกรมประกอบด้วยสามองค์ประกอบ:

  • ลูกค้า. ทำงานบนพีซีของผู้พัฒนาและส่งคำสั่ง หากต้องการโทรหาไคลเอ็นต์ คุณสามารถใช้คำสั่งที่เหมาะสมในเทอร์มินัลได้
  • ปีศาจ (adbd) ดำเนินการคำสั่งบนอุปกรณ์ ทำงานใน พื้นหลังในทุกอุปกรณ์
  • เซิร์ฟเวอร์ ควบคุมการโต้ตอบระหว่างไคลเอนต์และ daemon ทำงานในพื้นหลังบนคอมพิวเตอร์ของผู้พัฒนา

คุณสมบัติของเอดีบี:

  • ดูรายการอุปกรณ์ที่เชื่อมต่อและรองรับ
  • ดูบันทึก
  • คัดลอกและถ่ายโอนข้อมูลและไฟล์ระหว่างอุปกรณ์
  • การติดตั้งและถอนการติดตั้งแอปพลิเคชัน
  • การล้างและการเขียนทับส่วนข้อมูล
  • และยังมีอะไรอีกมากมาย

จากเว็บไซต์ของเรา คุณสามารถดาวน์โหลด Android Debug Bridge ได้ฟรีโดยไม่ต้องลงทะเบียนหรือส่ง SMS

ภาพหน้าจอ

เรียกใช้ Debug.exe ซึ่งเป็นโปรแกรมสำหรับตรวจสอบและแก้ไขไฟล์ปฏิบัติการ MS-DOS คำสั่งดำเนินการโดยไม่มีพารามิเตอร์ แก้ปัญหาเปิดตัว Debug.exe และแสดงพรอมต์คำสั่ง แก้ปัญหาซึ่งแสดงด้วยยัติภังค์ (-)


1)
เปิดตัว Virtual PC 2007 จาก ภาพวินโดวส์ประสบการณ์ สลับระบบปฏิบัติการเป็นโหมดบรรทัดคำสั่ง

เริ่ม -> วิ่ง -> พิมพ์ cmd แล้วกด Enter


2)
รับและจับภาพความช่วยเหลือเกี่ยวกับตัวเลือกคำสั่งดีบัก

ในคอนโซล: ป้อน debug จากนั้น (?)

รายการคำสั่งทั้งหมดโดยย่อ:

เอ (การประกอบ) — การแปลคำสั่งแอสเซมเบลอร์เป็นรหัสเครื่อง ที่อยู่เริ่มต้น - คส:0100น.

ค (เปรียบเทียบ) — การเปรียบเทียบเนื้อหาของพื้นที่หน่วยความจำทั้งสอง ค่าเริ่มต้นคือ ดี.เอส.- คำสั่งระบุความยาวของส่วนหรือช่วงของที่อยู่

D (ถ่ายโอนข้อมูล) — ส่งออกเนื้อหาของพื้นที่หน่วยความจำในรูปแบบเลขฐานสิบหกและ ASCII ค่าเริ่มต้นคือ ดี.เอส.- คุณสามารถระบุความยาวหรือช่วงได้

อี (ป้อน) — การป้อนข้อมูลหรือคำสั่งรหัสเครื่องลงในหน่วยความจำ ค่าเริ่มต้นคือ ดี.เอส..

เอฟ (เติม) — เติมพื้นที่หน่วยความจำด้วยข้อมูลจากรายการ ค่าเริ่มต้นคือ ดี.เอส.- คุณสามารถใช้ทั้งความยาวและช่วง

จี(ไป) — การดำเนินการโปรแกรมภาษาเครื่องดีบั๊กจนกระทั่งถึงจุดพักที่ระบุ ค่าเริ่มต้นคือ ดี.เอส.- ในกรณีนี้คุณควรตรวจสอบให้แน่ใจว่า ไอพีมีที่อยู่ที่ถูกต้อง

H (เลขฐานสิบหก) — การคำนวณผลรวมและผลต่างของค่าเลขฐานสิบหกสองค่า

ฉัน (อินพุต) — การอ่านและส่งออกหนึ่งไบต์จากพอร์ต

ลิตร (โหลด) — การโหลดไฟล์หรือข้อมูลจากเซกเตอร์ของดิสก์ลงในหน่วยความจำ - ค่าเริ่มต้น - คส:100ชม- สามารถระบุไฟล์ได้โดยใช้คำสั่ง เอ็นหรืออาร์กิวเมนต์เริ่มต้น ดีบัก.exe

เอ็ม (ย้าย) — การคัดลอกเนื้อหาของเซลล์หน่วยความจำ จะใช้ค่าเริ่มต้น ดี.เอส.

เอ็น (ชื่อ) — การระบุชื่อไฟล์สำหรับคำสั่ง ลิตร (โหลด)และ ว (เขียน).

O (เอาต์พุต) — การส่งไบต์ไปยังพอร์ตเอาต์พุต

ป(ดำเนินการต่อ) — การดำเนินการตามคำสั่ง CALL, LOOP, INT (ลูป, ขัดจังหวะ, ขั้นตอน)หรือคำสั่งสตริงที่ทำซ้ำได้พร้อมคำนำหน้า ตัวแทนไปยังคำแนะนำถัดไป

ถาม (ออก) — ปิดเครื่อง ดีบัก.exe- โดยไม่ต้องบันทึกไฟล์ที่ทดสอบ

R (ลงทะเบียน) — ส่งออกเนื้อหาของรีจิสเตอร์และคำสั่งถัดไป

เอส (ค้นหา) — ค้นหาตัวอักษรจากรายการในหน่วยความจำ ค่าเริ่มต้นคือ ดี.เอส.- คุณสามารถระบุได้ทั้งความยาวและช่วง

ที (ติดตาม) - การทำงานของโปรแกรมทีละขั้นตอน เช่นเดียวกับทีม ค่าเริ่มต้นคือคู่ ซีเอส:ไอพี- แต่การขัดจังหวะจะเป็นการดีกว่าถ้าใช้คำสั่ง .

U (ยังไม่ได้ประกอบ) — การแยกชิ้นส่วนรหัสเครื่อง ค่าเริ่มต้นคือคู่ ซีเอส:ไอพี.

ว(เขียน) — เขียนไฟล์จาก ดีบัก.exeไปยังดิสก์ จำเป็นต้องระบุชื่อไฟล์ด้วยคำสั่ง เอ็นหากไม่ได้โหลด


3)
เราจะรับและบันทึกการดัมพ์ของพื้นที่ลักษณะเฉพาะของ RAM และ ROM

มาพิมพ์คำสั่ง R กัน

ลงทะเบียน ซี.เอส., ดี.เอส., อีเอส, เอสเอสในขณะนี้เริ่มต้นได้ ที่อยู่ของคำนำหน้าเซ็กเมนต์โปรแกรม 256 ไบต์และพื้นที่การทำงานในหน่วยความจำจะเริ่มต้นด้วย ที่อยู่ของคำนำหน้านี้ + 100h.

กฎชุดคำสั่ง:

ก) บี ดีบัก.exeกรณีของตัวอักษรไม่แตกต่างกัน

B) ช่องว่างในคำสั่งใช้เพื่อแยกพารามิเตอร์เท่านั้น

C) ตัวเลขที่ป้อนจะต้องอยู่ในระบบเลขฐานสิบหก และ ปราศจากจดหมายฉบับสุดท้าย ชม..

D) ส่วนและออฟเซ็ตเขียนโดยใช้โคลอนในรูปแบบ ส่วน:ชดเชย.


4)
ดูพื้นที่หน่วยความจำ

ทีม คุณ [ช่วยให้คุณสามารถดูเนื้อหาในพื้นที่หน่วยความจำแต่ละส่วนได้
มาดูขนาดหน่วยความจำที่ใช้งานได้ เพื่อดำเนินการนี้ เราป้อน: วัน 40:13และเข้า
สองไบต์แรกที่ปรากฏบนหน้าจอจะมีขนาดหน่วยความจำเป็นกิโลไบต์และอยู่ในรูปแบบเลขฐานสิบหก โดยไบต์จะเรียงลำดับกลับกัน เรามีสิ่งนี้: 8002 0280 640 (K)

  • ที่อยู่ของไบต์แรกที่แสดงทางด้านซ้ายในรูปแบบ ส่วน:ชดเชย.
  • การแสดงย่อหน้าเป็นเลขฐานสิบหก (16 ไบต์) โดยเริ่มต้นด้วยไบต์ที่ระบุที่จุดเริ่มต้นของบรรทัด
  • อักขระของย่อหน้าเดียวกันในรูปแบบ ASCII


4)
ตรวจสอบพอร์ตขนานและพอร์ตอนุกรม


16 ไบต์แรกของพื้นที่ข้อมูล BIOS มีที่อยู่ของพอร์ตขนานและพอร์ตอนุกรม แปดไบต์แรกที่พิมพ์ระบุที่อยู่พอร์ตอนุกรม COM1-COM4 8 ไบต์ถัดไประบุที่อยู่ของพอร์ตขนาน LPT1-LPT4 ที่อยู่พอร์ต 78 03 – เขียนในรูปแบบย้อนกลับ


5)
การตรวจสอบสถานะของการลงทะเบียนคีย์บอร์ด


ในพื้นที่ข้อมูล ไบออสตามที่อยู่ 417ชมไบต์แรกตั้งอยู่ซึ่งเก็บสถานะของการลงทะเบียนคีย์บอร์ด


6)
ตรวจสอบวันที่ผลิต BIOS


ข้อมูลลิขสิทธิ์สำหรับ ไบออสสร้างขึ้นใน รอมไบออสตามที่อยู่ FE00:0- บรรทัดลิขสิทธิ์สามารถพบได้ง่ายใน แอสกี-ลำดับและหมายเลขซีเรียลจะอยู่ในรูปของเลขฐานสิบหก บนหน้าจอเราเห็นหมายเลขคอมพิวเตอร์เจ็ดหลักและวันที่ลิขสิทธิ์ แม้ว่าบรรทัดลิขสิทธิ์อาจยาวและอาจไม่พอดีกับพื้นที่หน่วยความจำที่จัดสรรไว้ ในกรณีนี้ คุณควรป้อนอีกครั้ง คุณ [.

มีการบันทึกวันที่ไว้ด้วย รอมไบออสเริ่มต้นจากที่อยู่ FFFF:5- หลังจากดำเนินการคำสั่งที่เหมาะสมแล้ว แอสกี-ลำดับจะมีวันที่นี้ซึ่งเขียนในรูปแบบ ดด/วว/ปปป.


7)
ตัวอย่างรหัสเครื่อง


มาดูการสร้างโปรแกรมภาษาเครื่อง การแสดงในหน่วยความจำ และผลลัพธ์ของการดำเนินการกัน คำสั่งดีบักเกอร์ A (การประกอบ)แปล ดีบักเข้าสู่โหมดการรับคำสั่งแอสเซมเบลอร์และแปลเป็นรหัสเครื่อง

ตอนนี้เมื่อโปรแกรมเข้าสู่หน่วยความจำแล้ว เรามาลองควบคุมการทำงานของมันกันดีกว่า ขั้นแรก เรามาตรวจสอบสถานะปัจจุบันของรีจิสเตอร์และแฟล็ก โดยป้อนคำสั่ง .


ไอพี- รีจิสเตอร์ที่มีแอดเดรสออฟเซ็ตของคำสั่งถัดไปที่จะดำเนินการโดยสัมพันธ์กับส่วนของโค้ด ซี.เอส.ในโปรเซสเซอร์ตระกูล x86

ลงทะเบียน ไอพีเกี่ยวข้องกับ ซี.เอส.ในรูปแบบ ซีเอส:ไอพี, ที่ไหน ซี.เอส.คือส่วนของโค้ดปัจจุบัน และ ไอพี— ออฟเซ็ตปัจจุบันสัมพันธ์กับเซ็กเมนต์นี้

ลงทะเบียน ไอพีเป็นรีจิสเตอร์พอยน์เตอร์ขนาด 16 บิต นอกจากนี้ การลงทะเบียนประเภทนี้ยังรวมถึง เอสพี (ตัวชี้สแต็ก- ตัวชี้สแต็ก) และ บี.พี. (ตัวชี้ฐาน- ดัชนีพื้นฐาน)

บันทึก CXได้สำเร็จและเท่ากับ 8 เริ่มต้นกลุ่มแล้ว ดี.เอส., อีเอส, เอสเอส, ซี.เอส.ที่อยู่เดียวกัน ลงทะเบียน ไอพีประกอบด้วย 0100 ซึ่งบ่งชี้ว่าคำสั่งถูกดำเนินการที่ออฟเซ็ต 100h สัมพันธ์กับ CS (นั่นคือจุดเริ่มต้นของเรา)

ความหมาย

คำอธิบาย

ไม่มีล้น

ทิศทางขึ้นหรือขวา

เปิดใช้งานการขัดจังหวะ

สัญญาณเชิงบวก

ค่าที่ไม่เป็นศูนย์

ไม่มีการโอนเพิ่มเติม

คำแปลก

0 บี16 - ที่อยู่ของส่วนรหัส
  • รหัสเครื่องที่สอดคล้องกับคำสั่งนี้ ( B025).
  • คำสั่งจริงที่เขียนในแอสเซมเบลอร์ ( เอ็มโอวี เอ ,25 ).

  • 8)
    คำสั่งดีบักเกอร์ U (Unassemble) จะแสดงรหัสเครื่องสำหรับคำแนะนำในการประกอบ


    มาทำกัน. จำเป็นต้องบอกดีบักเกอร์ถึงที่อยู่ของคำสั่งแรกและคำสั่งสุดท้ายที่ต้องดู (เรามี 100 และ 107) คำแนะนำในช่วงที่ระบุจะปรากฏขึ้น ในภาษาแอสเซมบลี ในรหัสเครื่อง รวมถึงที่อยู่ของแต่ละคำสั่ง มารันโปรแกรมทีละขั้นตอนโดยใช้คำสั่ง .

    การใช้คำสั่งเป็นครั้งที่สอง เราได้ปฏิบัติตามคำแนะนำแล้ว มธ- รหัสเครื่องของตัวถูกดำเนินการคำสั่งคือ – 00D8- การดำเนินการเพิ่ม อัลถึง บี.แอล.- เพื่อออกเราเข้าไป โอ- และอีกครั้งที่เราแยกชิ้นส่วนที่สร้างขึ้น testpi.com.


    9)
    คัดลอก BIOS (C000:0 ... FFFF:F) ไปยังไฟล์และบันทึกไฟล์เพื่อการวิเคราะห์ในภายหลัง


    การเปลี่ยนหรือคัดลอกรหัส ไบออสอาจละเมิดลิขสิทธิ์ของผู้ผลิต ไบออส. ไบออสอาจคัดลอกหรือแก้ไขเพื่อการใช้งานส่วนตัวเท่านั้น และไม่จำหน่าย ขั้นตอนการคัดลอกทั่วไป ไบออสโดยใช้โปรแกรม ดีบักเราจะให้ด้านล่าง ขั้นตอนนี้จะบันทึกส่วนขนาด 64 KB ทั้งหมดจากที่อยู่ในไฟล์ F000:0000ชมโดย F0000:FFFFชั่วโมง.


    ข้อสรุป:

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

    OllyDbg 2.0 เป็นดีบักเกอร์ระดับ User Space ที่ได้รับความนิยมอย่างมากในหมู่ผู้ใช้ทั่วโลก ปัจจุบันมีการเขียนปลั๊กอินจำนวนมากสำหรับ OllyDbg ดังนั้นจึงยินดีเป็นอย่างยิ่งที่ได้ร่วมงานกับมัน OllyDbg มีฟังก์ชันการทำงานที่ดี ซึ่งทำให้เหมาะสำหรับการแก้ปัญหาต่างๆ และตรวจสอบโค้ดที่ซับซ้อน อินเทอร์เฟซดีบักเกอร์สามารถปรับแต่งได้อย่างเต็มที่: พื้นหลังของหน้าต่างการทำงาน สีและขนาดตัวอักษร การเน้นคำแนะนำการประกอบบางอย่าง และอื่นๆ อีกมากมาย

    คุณสมบัติและฟังก์ชั่นที่สำคัญ

    อินเทอร์เฟซ:

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

    ฟังก์ชั่น:

    • รายการฟังก์ชั่นที่ใช้ในโปรแกรมที่กำลังดีบั๊ก
    • รายการตัวแปรสตริงที่พบในโปรแกรม
    • รายการตัวจัดการสำหรับองค์ประกอบควบคุมของโปรแกรมที่กำลังดีบั๊ก เช่น หน้าต่าง ปุ่ม ช่องทำเครื่องหมาย แถบเครื่องมือ ฯลฯ

    เบรกพอยต์- สามารถตั้งค่าเบรกพอยท์ได้หลายจุด (รวมถึงพร้อมกัน):

    • สำหรับฟังก์ชันเฉพาะ
    • ไปยังที่อยู่เฉพาะ
    • ไปยังข้อความ Windows;
    • อ่านจากความทรงจำ
    • เพื่อบันทึกลงในหน่วยความจำ
    • เพื่อเข้าถึงหน่วยความจำ (อ่านและเขียน)
    • ไปยังลำดับเฉพาะของคำสั่งโค้ด

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

    สแต็ค:

    • ค่าบนสแต็กจะมาพร้อมกับความคิดเห็นซึ่งทำให้เข้าใจอาร์กิวเมนต์ของฟังก์ชันได้ง่ายขึ้น

    ติดตาม:

    • เมื่อรันโค้ดทีละขั้นตอน ก่อนแต่ละคำสั่ง ดีบักเกอร์จะแจ้งค่าปัจจุบันของที่อยู่หน่วยความจำที่กำลังดำเนินการอยู่

    ค้นหาค่าในหน่วยความจำ:

    • รองรับการค้นหาสตริง ASCII และ Unicode รวมถึงค่าฐานสิบหก

    หน้าต่างรหัส:

    • โค้ดโปรแกรมจะมาพร้อมกับความคิดเห็น เช่น ชื่อฟังก์ชัน อาร์กิวเมนต์ ค่าตัวแปร และอื่นๆ