
Patch AMSI e ETW
este repositório contém informações para aplicar patch no AMSI e no ETW usando um patch de um único byte para ambos.
A ideia era limitar a detecção do próprio patch, já que é um único byte.
A ideia é que o AMSI realiza muitas verificações de validação antes de chegar ao código crítico de "verificação" do AMSI. Você pode simplesmente alternar um jz para jnz e vice-versa.

A seta vermelha na figura acima mostra onde o código crítico está localizado.

Exemplo de verificações que podem ser alternadas para evitar chamar o código crítico.
Neste caso, aplicamos o patch no jnz após o cmp dword ptr [rbx], 49534d41h.
O patch é simplesmente o endereço de AmsiScanBuffer + 0x83 = 0x74 (x64)
Em vez de aplicar patch em EtwEventWrite, simplesmente aplique o patch na syscall , que é chamada por muitas funções.
NtTraceEvent
Como mostrado na figura abaixo, NtTraceEvent é usada por muitas funções dentro de ntdll.dll

O patch consiste simplesmente em forçar um retorno quando a função NtTraceEvent é chamada NtTraceEvent = 0xc3 (x64)