
Ich habe alle AMSI-Patches dokumentiert, die ich bisher kennengelernt habe.
Ich habe alle AMSI-Patches dokumentiert, die ich bisher gelernt habe


a. Um den Eintritt in amsi!AmsiOpenSession+0x4c über jne zu überspringen, wenn alle Anweisungen vor dem Aufruf von jne erfolgreich sind
=> Wir würden direkt bei amsi!AmsiCloseSession landen.
jne aus amsi!AmsiOpenSession zu verwenden. Github. Ich habe seine AMSI-Patch-Codevorlage verwendet und weitere Methoden hinzugefügt, an denen ich bisher gearbeitet habe.b. Um den Eintritt in amsi!AmsiOpenSession+0x4c (öffnet eine Sitzung, in der mehrere Scan-Anforderungen korreliert werden können) über ret zu überspringen, indem c3 direkt an den Anfang von amsi!AmsiOpenSession gesetzt wird
=> Wir würden direkt bei amsi!AmsiCloseSession landen.
a. Um die Ausführung der Hauptanweisungen von amsi!AmsiScanBuffer über ret zu überspringen, indem c3 direkt an den Anfang von amsi!AmsiScanBuffer gesetzt wird
b. Um den Zweig zu überspringen, der die eigentliche Überprüfung in amsi!AmsiScanBuffer durchführt und zurückkehrt, indem \\xB8\\x57\\x00\\x07\\x80\\xC3 ('mov eax, 0x80070057; ret') direkt an den Anfang von amsi!AmsiScanBuffer gesetzt wird
Hier ist der Wert (eher Fehlerwert) von HRESULT 'E_INVALIDARG' (Quelle: https://pre.empt.dev/posts/maelstrom-etw-amsi/#Historic_AMSI_Bypasses)
c. Um den Zweig zu überspringen, der die eigentliche Überprüfung in amsi!AmsiScanBuffer durchführt und zurückkehrt, indem \\xB8\\x05\\x00\\x07\\x80\\xC3 ('mov eax, 0x80070005; ret') direkt an den Anfang von amsi!AmsiScanBuffer gesetzt wird
Hier ist der Wert (eher Fehlerwert) von HRESULT 'E_ACCESSDENIED' (Quelle: https://pre.empt.dev/posts/maelstrom-etw-amsi/#Historic_AMSI_Bypasses)
d. Um den Zweig zu überspringen, der die eigentliche Überprüfung in amsi!AmsiScanBuffer durchführt und zurückkehrt, indem \\xB8\\x06\\x00\\x07\\x80\\xC3 ('mov eax, 0x80070006; ret') direkt an den Anfang von amsi!AmsiScanBuffer gesetzt wird
Hier ist der Wert (eher Fehlerwert) von HRESULT 'E_HANDLE' (Quelle: https://pre.empt.dev/posts/maelstrom-etw-amsi/#Historic_AMSI_Bypasses)
e. Um den Zweig zu überspringen, der die eigentliche Überprüfung in amsi!AmsiScanBuffer durchführt und zurückkehrt, indem \\xB8\\x0E\\x00\\x07\\x80\\xC3 ('mov eax, 0x8007000E; ret') direkt an den Anfang von amsi!AmsiScanBuffer gesetzt wird
Hier ist der Wert (eher Fehlerwert) von HRESULT 'E_OUTOFMEMORY' (Quelle: https://pre.empt.dev/posts/maelstrom-etw-amsi/#Historic_AMSI_Bypasses)
JE zu JMP, sodass es direkt zurückkehrt... : https://github.com/ZeroMemoryEx/Amsi-Killer