Patch de Emergencia

Post on 21-Jun-2015

338 views 0 download

Transcript of Patch de Emergencia

Patch de Emergência

Wanderley Caloni

2012-07

wanderley at caloni at low level

• Programador entusiasta (Basic YES!): 1 ano• C/C++ Maniac: 2 anos• Segurança da Informação: 10 anos• Mercado Financeiro: 1 ano

wanderley at caloni at low level

CriticalService.exe

EvenOdd.dll

DoProcess IsEven

Espaço de memória do processo

Patch de Emergência

IsEven

mov ebx, espadd esp

mov eax, dword ptr[ebx]

ret

IsEven

10010010010101010010101010001010101101001010011010100010100101011

windbg -pvr -pn CriticalService.exe

noninVasivelyResume threads

Patch de Emergência

IsEven

mov ebx, espadd esp+8

mov eax, dword ptr[ebx+8]

ret

IsEven

mov ebx, espadd esp

mov eax, dword ptr[ebx]

ret

Patch de Emergência

WinDbg

a [address]

2.0!!

CriticalService.exe EvenOdd.dll

DoProcess IsEven

Espaço de memória do processo

EvenOdd3.dll

IsEven

Patch de Emergência

Patch de Emergência

CriticalService.exe

LoadLibrary

Espaço de memória CS.exe

EvenOdd3.dll

RmThread.exe

CreateRemoteThread

Espaço de memória RmT.exe

Patch de Emergência 3.0!!

Patch de Emergência

Escrita de assembly live

Carregamento dinâmico de DLLs

Jumps incondicionais

Técnicas automatizadas

Técnicas documentadas

Técnicas testadas

XGH: eXtreme Go Horse Programming

KMJ: Keep My Job

EvenOdd.dll

IsEvenEvenOdd2.dll

IsEvenEvenOdd3.dll

IsEven

...

Patch de Emergência 4.0!!

EvenOdd.dll

100100100100100101

100100100100100101

100100100100100101

EvenOdd.pdb

IsEven(int)

(IsEvenUpdate*)(int)

bool IsEvenUpdateReady

DbgHelp.lib

Patch de Emergência 5.0!!

ULTIMATE EDITION!!!

O que aprendemos?

Dúvidas? Eu tenho várias.

wanderley@caloni.com.br

twitter

saite

e-mail