
مصحح أخطاء يستخدم خطافات خفية للاختفاء من اكتشاف المصححات
GhostDebug هو نموذج أولي لمصحح أخطاء (Debugger) لـ Windows x64، يتكون من مكتبة DLL أصلية للتصحيح وعميل سطر أوامر يعمل بإطار عمل .NET Framework. وهو مصمم لتصحيح الأهداف التي تستخدم فحوصات كشف المصحح.
للاطلاع على خلفية التصميم، راجع تطوير مصحح أخطاء غير مكتشف على Windows.
قم ببناء جميع المشاريع في Visual Studio.
ابدأ العملية الهدف. تم تضمين TestTarget كمثال بسيط.
افتح طرفية في GhostDebug/GhostDebug-CLI/bin/Release/ وابدأ تشغيل واجهة سطر الأوامر:
.\GhostDebug.exe
أرفِق بواسطة معرف العملية أو اسم العملية، ثم استخدم الأوامر التفاعلية:
attach <pid/process name>
Attach to a process.
bp <address>
Set a breakpoint.
bp <address> <command list>
Set a breakpoint with commands that are executed automatically when it hits.
cl <address>
Clear a breakpoint.
g
Resume execution.
t
Step into one instruction.
rw <register> <value>
Queue a value to be written to a register before continuing.
help
Display the command help.
يمكن أن تكون العناوين مطلقة، أو نسبية إلى الوحدة الرئيسية (+1234)، أو نسبية إلى وحدة أخرى (ntdll+1234)، أو مُحدَّدة برمز (!function أو kernel32!ExitProcess). يمكن لنقاط التوقف أيضًا تشغيل أوامر تلقائيًا، على سبيل المثال bp 1234 rw rax 0;g.
يجب تشغيل واجهة سطر الأوامر من المجلد الذي يحتوي على ghostdebug-core.dll، ويجب أن تستخدم العملية الهدف وواجهة سطر الأوامر نفس البنية (x64).