
makin - Anti-Debugging- und Anti-VM-Tricks aufdecken [Dieses Projekt wird nicht mehr gepflegt]
Ich habe makin erstellt, um die initiale Malware-Bewertung für mich etwas einfacher zu machen. Ich denke, es ist auch für andere nützlich. Es hilft dabei, Debugger-Erkennungstechniken aufzudecken, die von einer Probe verwendet werden.
makin öffnet eine Probe als Debuggee und injiziert asho.dll (das Hauptmodul benennt alle dlls vor der Injektion um). asho.dll hookt mehrere Funktionen in den Bibliotheken ntdll.dll und kernelbase.dll und sendet nach Parameterprüfungen die entsprechende Nachricht an den Debugger (makin.exe).
makin generiert außerdem ein Skript für IDA Pro, um Breakpoints an erkannten APIs zu setzen.
Derzeit kann makin folgende Techniken aufdecken:
ntdll.dll:
NtClose - ref: Die „Ultimative“ Anti-Debugging-Referenz: 7.B.iiNtOpenProcess - ref: Die „Ultimative“ Anti-Debugging-Referenz: 7.B.iNtCreateFile - ref: Die „Ultimative“ Anti-Debugging-Referenz: 7.B.iii (Selbst öffnen)NtCreateFile - ref: Die „Ultimative“ Anti-Debugging-Referenz: 7.B.iii (Einen Treiber öffnen)LdrLoadDll - ref: Die „Ultimative“ Anti-Debugging-Referenz: 7.B.ivNtSetDebugFilterState - ref: Die „Ultimative“ Anti-Debugging-Referenz: 7.D.viNtQueryInformationProcess - ref: Die „Ultimative“ Anti-Debugging-Referenz: 7.D.viii.a, 7.D.viii.b, 7.D.viii.cNtQuerySystemInformation - ref: kernelbase.dll:
IsDebuggerPresent - ref: MSDNCheckRemoteDebuggerPresent - ref: MSDNSetUnhandledExceptionFilter - ref: Die „Ultimative“ Anti-Debugging-Referenz: D.xvRegOpenKeyExInternalW - überprüft RegistrierungsschlüsselRegQueryValueExW - überprüft RegistrierungsschlüsselwerteSie können weitere VM-Prüfungen hinzufügen, indem Sie die Datei checks.json bearbeiten, ohne die ausführbare Datei zu ändern.
Das war's fürs Erste, Sie können so viel hinzufügen, wie Sie möchten :)

NtSetInformationThread - ref: Die „Ultimative“ Anti-Debugging-Referenz: 7.F.iiiNtCreateUserProcess - ref: Die „Ultimative“ Anti-Debugging-Referenz: 7.G.iNtCreateThreadEx - ref: ntquery BlogbeitragNtSystemDebugControl - ref: @waleedassar - pastebinNtYieldExecution - ref: Die „Ultimative“ Anti-Debugging-Referenz: 7.D.xiiiNtSetLdtEntries - ref: ANTI-UNPACKER TRICKS: TEIL EINS - 2.1.2NtQueryInformationThread - ref: ntquery - NtQueryInformationThreadNtCreateDebugObject und NtQueryObject - ref: Anti-Debug NtQueryObjectRtlAdjustPrivilege - ref: Using RtlAdjustPrivilege to detect debugger by insid3codeteamPEB->BeingDebugged - Anstatt IsDebuggerPresent() aufzurufen, überprüfen einige Programme manuell das PEB (Process Environment Block) auf das BeingDebugged-Flag.PEB->NtGlobalFlag - ref: al-khaserUserSharedData->KdDebuggerEnabled - ref: al-khaser - SharedUserData_KernelDebuggerPROCTECTED-Handle-Tricks - ref: al-khaser - HANDLE_FLAG_PROTECT_FROM_CLOSE