introducciÓn al cracking con ollydbg parte 11.doc
TRANSCRIPT
-
7/25/2019 INTRODUCCIN AL CRACKING CON OLLYDBG PARTE 11.doc
1/15
INTRODUCCIN AL CRACKING CON OLLYDBG PARTE 11
Bueno, ya nos queda ver los hardware breakpoints, los condicionales y los message breakpoints, paraterminar con los tipos de breakpoints.
HARDWARE BREAKPOINTS
Los HARDAR! BR!A"#$%&'( o )HB#* son una propiedad +sica del procesador, realmente yo nocono-co la arquitectura de los mismos para eplicarla, pero es como si tuviera varias entradas en lascuales vos le podes poner las direcciones en las cuales quer/s que el programa se detenga y el al ire0ecutando compara y al hallar la direcci1n parara.
'enemos la posibilidad de poner cuatro HB#, a la ve- al poner el quinto $LL2DB3 nos pedir4 queeli0amos cual de los 5 eistentes queremos borrar.
6omo siempre usemos el 6RA6"7! D! 6R8!H!AD para practicar
!isten HB# $& !9!68'%$&, $& R%'! y $& A66!(( son las tres posibilidades eistentes.
#oner un HB $& !9!68'%$& cumple la misma +unci1n que poner un B#9 en una direcci1n, salvo que
el HB# no cambia c1digo y es mas di+cil que sea detectado, eso si hay programas que tienen trucos quenos borran los HB#, esos trucos y la +orma de contrarrestarlos los veremos en pr1imas entregas.
(i quiero poner un HB# !9!68'%$& en 5:;:;
-
7/25/2019 INTRODUCCIN AL CRACKING CON OLLYDBG PARTE 11.doc
2/15
$LL2DB3 tiene una ventana especial para que podamos ver y mane0ar los HB#, para ello vamos aD!B83=HARDAR! BR!A"#$%&'(
All tenemos la ventana de los HB#, si apretamos >$LL$ nos mostrara en el listado donde esta
colocado el mismo, y con D!L!'! podremos borrarlo.
Ahora apreto >? para correr el programa
2 para en 5:;:;?
emos que paro y $LL2DB3 nos dice
(i vemos !A9 vemos que vale 5:::::, lo cual +ue la condici1n para que se detuviese
(i reinicio y borro el B#9 6$&D%6%$&AL y ahora coloco otro pero que pare si !A9JJK::::: por
e0emplo
-
7/25/2019 INTRODUCCIN AL CRACKING CON OLLYDBG PARTE 11.doc
8/15
2 doy R8&
emos que el crackme se e0ecuta y no para en el BR!A"#$%&' ya que siempre al pasar por all, vale!A9J5::::: y la condici1n no es cumplida, por lo tanto no se detiene.
(i vamos a H!L#=6$&'!&'(
All a BR!A"#$%&'( y luego a epression
-
7/25/2019 INTRODUCCIN AL CRACKING CON OLLYDBG PARTE 11.doc
9/15
$LL2DB3 nos mostrara e0emplos de epresiones que pueden ser usadas en las condiciones
BREAKPOINT CONDICIONAL LOG
!s un B#9 condicional igual que el anterior, solo que en este caso podemos activar que nos loguee o nosguarde ciertos valores al pasar por el B#9 6$&D%6%$&AL, en este caso las opciones son muchsimas,
probaremos en el caso de una A#% que tiene varios accesos y queremos que loguee o nos guarde ciertosdatos al pasar por ella.8samos el e0emplo de la api pero puede ser colocado un B#9 6$&D%6%$&AL L$3 en cualquierdirecci1n sea api o no, reiniciemos el $LL2.
amos a la direcci1n de la api, ya sabemos como 6L%6" D!R!6H$=3$'$ !9#R!((%$&
-
7/25/2019 INTRODUCCIN AL CRACKING CON OLLYDBG PARTE 11.doc
10/15
All estamos ahora hacemos 6L%6" D!R!6H$= BR!A"#$%&'= 6$&D%6%$&AL L$3
emos que nos aparece una ventana con m4s opciones
!n este caso no haremos que pare en la api, solo que nos loguee ciertos datos de inter/s.
-
7/25/2019 INTRODUCCIN AL CRACKING CON OLLYDBG PARTE 11.doc
11/15
6omo no queremos que pare no colocamos ninguna 6$&D%6%& y en la opci1n #A8(! #R$3RA7elegimos que no pare nunca o sea ponemos la marca en &!!R.Luego en L$3 AL8! $> !9#R!(%& ponemos que nos guarde el valor de Cesp que escribimos en elrengl1n !9#R!((%$&, que como sabemos ser4 la direcci1n de retorno al programa desde la api, ya quees el valor superior del stack, por lo tanto en la segunda opci1n L$3 AL8! $> !9#R!(%& elegimosALA2( para que la L$38!! siempre, y en el tercer rengl1n nos da la opci1n si queremos L$38!ARlos argumentos o par4metros de la +unci1n o api, pues no estar4 de mas, ponemos ALA2( tambien.
amos a la ventana L$3 o L
2 limpiamos la misma para ver claro lo que guarde el programa a partir de aqu con 6L%6" D!R!6H$=6L!AR %&D$.
emos que tambi/n all esta la opci1n de guardar lo logueado, en una +ila de teto, si lo necesitamos lopodemos activar all.
-
7/25/2019 INTRODUCCIN AL CRACKING CON OLLYDBG PARTE 11.doc
12/15
Ahora doy R8& con +?
Llego a la ventana del crackme y aun no hay en el L$3 nada sobre nuestra api pues aun no paso por lamisma.
amos a R!3%('!R y pongamos un user y pass cualquiera.
Al apretar $"
emos all que nos muestra aun sin haberse detenido el $LL2, la in+o de la 7essageBoA, primero elvalor superior del stack que es 5:;
-
7/25/2019 INTRODUCCIN AL CRACKING CON OLLYDBG PARTE 11.doc
13/15
6ambio la tilde para que solo pare cuando se cumpla la condici1n )$& 6$&D%'%$&* y escribo lacondici1n o sea que solo pare cuando Cesp sea igual a 5:;
-
7/25/2019 INTRODUCCIN AL CRACKING CON OLLYDBG PARTE 11.doc
14/15
Al apretar aceptar
Ah si en la segunda ve- que va a la api, se cumple la condici1n y para.
emos que en la parte superior del stack esta el valor 5:;
-
7/25/2019 INTRODUCCIN AL CRACKING CON OLLYDBG PARTE 11.doc
15/15
Hasta la parte ;Ricardo &arva0aE de noviembre de ::K