INTRODUCCIÓN AL CRACKING CON OLLYDBG PARTE 11.doc

download INTRODUCCIÓN AL CRACKING CON OLLYDBG PARTE 11.doc

of 15

Transcript of INTRODUCCIÓN AL CRACKING CON OLLYDBG PARTE 11.doc

  • 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