Patch de Emergencia
-
Upload
wanderley-caloni -
Category
Technology
-
view
338 -
download
0
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?