
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.
Video-Link: https://drive.google.com/file/d/1H0JheGNGzIyWZ62HNLmJ_oeAAUtDGIKd/view?usp=sharing
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.
Video-Link: https://drive.google.com/file/d/1_tpCfJ-aO1wzeEx3Id7b7bTJUyc5ExBw/view?usp=sharing
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
Video-Link: https://drive.google.com/file/d/1PljZld1aXz89nCO3gQCjYpwSqbEbi4J_/view?usp=sharing
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)
Von Ritaban Das: https://github.com/dosxuz/TradecraftImrprovement
JE zu JMP, sodass es direkt zurückkehrt... : https://github.com/ZeroMemoryEx/Amsi-Killer