
Parchea AMSI y ETW
Este repositorio contiene información para parchear AMSI y ETW usando un parche de un solo byte para ambos.
La idea era limitar la detección del propio parche, ya que es un solo byte.
La idea es que AMSI realiza muchas comprobaciones de validación antes de llegar al código crítico de "comprobación" de AMSI. Simplemente puedes intercambiar un jz por un jnz y viceversa.

La flecha roja en la figura anterior muestra dónde se encuentra el código crítico.

Ejemplo de comprobaciones que se pueden alternar para evitar llamar al código crítico.
En este caso parcheamos el jnz después del cmp dword ptr [rbx], 49534d41h.
El parche es simplemente la dirección de AmsiScanBuffer + 0x83 = 0x74 (x64).
En lugar de parchear EtwEventWrite, simplemente parchea la syscall , que es llamada por muchas funciones.
NtTraceEvent
Como se muestra en la figura siguiente, NtTraceEvent es utilizada por muchas funciones dentro de ntdll.dll.

El parche es simplemente forzar un retorno cuando se llama a la función NtTraceEvent: NtTraceEvent = 0xc3 (x64).