
Patch AMSI and ETW
ce dépôt contient des informations pour patcher AMSI et ETW en utilisant un patch d'un seul octet pour les deux.
L'idée était de limiter la détection du patch lui-même puisqu'il ne s'agit que d'un seul octet.
L'idée est qu'AMSI effectue de nombreux contrôles de validation avant d'atteindre le code critique « check » d'AMSI. Vous pouvez simplement inverser un jz en jnz et vice versa.

La flèche rouge sur la figure ci-dessus montre où se trouve le code critique.

Exemple de contrôles qui peuvent être inversés pour éviter d'appeler le code critique.
Dans ce cas, nous patchons le jnz après le cmp dword ptr [rbx], 49534d41h.
le patch est simplement l'adresse de AmsiScanBuffer + 0x83 = 0x74 (x64)
Au lieu de patcher EtwEventWrite, patchez simplement le syscall NtTraceEvent qui est appelé par de nombreuses fonctions.

Comme le montre la figure ci-dessous, NtTraceEvent est utilisé par de nombreuses fonctions dans ntdll.dll

Le patch consiste simplement à forcer un retour lorsque la fonction NtTraceEvent est appelée NtTraceEvent = 0xc3 (x64)