
makin - выявление анти-отладочных и анти-VM трюков [Этот проект больше не поддерживается]
Я создал makin, чтобы немного упростить для себя первоначальную оценку вредоносного ПО; думаю, это будет полезно и другим. Он помогает выявлять техники обнаружения отладчика, используемые образцом.
makin открывает образец как отлаживаемый процесс и внедряет asho.dll (основной модуль переименовывает все dll перед внедрением). asho.dll перехватывает несколько функций в библиотеках ntdll.dll и kernelbase.dll, и после проверки параметров отправляет соответствующее сообщение отладчику (makin.exe).
makin также генерирует скрипт для IDA Pro для установки точек останова на обнаруженных API.
На данный момент 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 (Open itself)NtCreateFile — ссылка: The "Ultimate" Anti-Debugging Reference: 7.B.iii (Open a driver)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 — проверяет значения ключей реестраВы можете добавить больше проверок VM, редактируя файл 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(), некоторые программы вручную проверяют флаг BeingDebugged в PEB (Process Environment Block).PEB->NtGlobalFlag — ссылка: al-khaserUserSharedData->KdDebuggerEnabled — ссылка: al-khaser - SharedUserData_KernelDebuggerPROCTECTED handle — ссылка: al-khaser - HANDLE_FLAG_PROTECT_FROM_CLOSE