
makin - كشف حيل مكافحة التصحيح ومكافحة الأجهزة الافتراضية [هذا المشروع لم يعد يُصان]
لقد أنشأت makin لتسهيل التقييم الأولي للبرامج الضارة قليلاً بالنسبة لي، وأعتقد أنه مفيد للآخرين أيضًا، فهو يساعد في كشف تقنيات كشف المُصحح (debugger) التي يستخدمها نموذج ما.
يفتح makin نموذجًا كمُصحَح (debuggee) ويحقن asho.dll (الوحدة الرئيسية تعيد تسمية جميع dlls قبل الحقن)، حيث تقوم asho.dll بتعليق (hook) عدة دوال في مكتبات ntdll.dll و kernelbase.dll، وبعد التحقق من المعاملات، ترسل الرسالة المقابلة إلى المُصحح (makin.exe).
يقوم makin أيضًا بإنشاء سكريبت لبرنامج IDA Pro لتعيين نقاط توقف (breakpoints) في واجهات البرمجة (APIs) المكتشفة.
في هذه اللحظة، يمكن لـ makin كشف التقنيات التالية:
ntdll.dll:
NtClose - المرجع: The "Ultimate" Anti-Debugging Reference: 7.B.iiNtOpenProcess - المرجع: The "Ultimate" Anti-Debugging Reference: 7.B.iNtCreateFile - المرجع: The "Ultimate" Anti-Debugging Reference: 7.B.iii (فتح نفسه)NtCreateFile - المرجع: The "Ultimate" Anti-Debugging Reference: 7.B.iii (فتح مشغل)LdrLoadDll - المرجع: The "Ultimate" Anti-Debugging Reference: 7.B.ivNtSetDebugFilterState - المرجع: The "Ultimate" Anti-Debugging Reference: 7.D.viNtQueryInformationProcess - المرجع: The "Ultimate" Anti-Debugging Reference: 7.D.viii.a, 7.D.viii.b, 7.D.viii.cNtQuerySystemInformation - المرجع: kernelbase.dll:
IsDebuggerPresent - المرجع: MSDNCheckRemoteDebuggerPresent - المرجع: MSDNSetUnhandledExceptionFilter - المرجع: The "Ultimate" Anti-Debugging Reference: D.xvRegOpenKeyExInternalW - يتحقق من مفاتيح التسجيلRegQueryValueExW - يتحقق من قيم مفاتيح التسجيليمكنك إضافة المزيد من الفحوصات للآلة الافتراضية عن طريق تعديل ملف checks.json، دون تعديل الملف التنفيذي
هذا كل شيء الآن، يمكنك إضافة ما تشاء :)

NtSetInformationThread - المرجع: The "Ultimate" Anti-Debugging Reference 7.F.iiiNtCreateUserProcess - المرجع: The "Ultimate" Anti-Debugging Reference 7.G.iNtCreateThreadEx - المرجع: ntuery blog postNtSystemDebugControl - المرجع: @waleedassar - pastebinNtYieldExecution - المرجع: The "Ultimate" Anti-Debugging Reference 7.D.xiiiNtSetLdtEntries - المرجع: ANTI-UNPACKER TRICKS: PART ONE - 2.1.2NtQueryInformationThread - المرجع: ntquery - NtQueryInformationThreadNtCreateDebugObject و NtQueryObject - المرجع: Anti-Debug NtQueryObjectRtlAdjustPrivilege - المرجع: Using RtlAdjustPrivilege to detect debugger by insid3codeteamPEB->BeingDebugged - بدلاً من استدعاء IsDebuggerPresent()، تفحص بعض البرامج يدويًا PEB (كتلة بيئة العملية) للعلم BeingDebugged.PEB->NtGlobalFlag - المرجع: al-khaserUserSharedData->KdDebuggerEnabled - المرجع: al-khaser - SharedUserData_KernelDebuggerPROCTECTED - المرجع: al-khaser - HANDLE_FLAG_PROTECT_FROM_CLOSE