Você está na página 1de 7

INTRODUCCION AL CRACKING CON OLLYDBG PARTE 2

Luego de haber visto a grandes trazos, la ubicacin y las principales partes del OLLYDBG, debemos aprender el sistema de numeracin utilizado y cual es el concepto de stack aunque sea para tener una idea, luego pro undizaremos! SISTEMAS NUMERICOS Los tres sistemas num"ricos que m#s se utilizan son el binario el decimal y el he$adecimal! %l concepto b#sico que deben tener de ellos es el siguiente& B'()*'O& +e representa los n,meros con dos caracteres el - y . por eso se llama B'()*'O! D%/'0)L& +e representa todos los n,meros con .- caracteres 1del - al 23 por eso se llama decimal! 4%5)D%/'0)L& +e representa todos los n,meros con caracteres del - al 6 1 del - al 2, mas ), B, /, D, % y 6, o sea serian .7 caracteres en total3! (ormalmente a partir de aqu8 cuando diga un n,mero y no diga a que sistema de numeracin pertenece es porque es 4%5)D%/'0)L que es el que utiliza OLLYDBG, si son decimales o binarios aclarare e$presamente! %$isten ormulas matem#ticas que no utilizaremos aqu8, para convertir n,meros de un sistema al otro, que no son muy simp#ticas, pero llegado el momento, un cracker realmente usa la /)L/9L)DO*) D% :'(DO:+, que es lo mas r#pido y directo y no va a ponerse a hacer cuentas de potencias, sumas etc para convertir un numero de un sistema a otro! )bramos la /)L/9L)DO*) D% :'(DO:+ y prepar"mosla

)ll8 vemos en el men, ;%* como se puede cambiar a /'%(<'6'/)!

)ll8 vemos que por D%6)9L< arranca en D%/'0)L, y al lado tiene la opcin de cambiar a 4%5)D%/'0)L 14%53, O/<)L 1O/<3 y B'()*'O 1B'(3! %l Octal que representa la numeracin con = caracteres no es muy usado en cracking pero la calculadora trae dicha opcin incluida, si se llegara a necesitar! >ues para pasar un n,mero de un sistema a otro es muy sencillo, pongo la calculadora en el sistema del n,mero que quiero cambiar, por e?emplo si quiero cambiar @@ de D%/'0)L a 4%5), pongo la calculadora en D%/'0)L y tipeo @@!

)hora cambio la calculadora a 4%5) y autom#ticamente me lo convierte a ese sistema de numeracin

)h8 esta @@ decimal equivale a AB! *esalte las letras ),B,/,D,%,6 para ver que al pasar la calculadora a 4%5) se nos habilita la posibilidad de teclear las mismas, que estaban deshabilitadas en modo D%/'0)L! /reo que esta es la orma mas practica de mane?arse con los sistemas de numeracin, y poder pasar valores de uno a otro sin grandes complicaciones! NUMEROS NEGATIVOS en HEXADECIMAL

%sto es lo mas duro de entender por le?os tratemos de ir despacio! %n el sistema de numeracin he$adecimal, como podemos representar los n,meros negativos, ya que no se puede poner el signo menos delante como hacemos en la tradicional numeracin decimal C /omo hago para representar en ormato he$adecimal D. por e?emplo C >ues aqu8 viene el problema y espero que se entienda! +olo tenemos la posibilidad de escribir en he$adecimal desde -------- hasta 66666666, como representar8amos los n,meros negativosC >ues bien a un genio se le ocurri que en vez de representar desde -------- hasta 66666666 todos n,meros positivos, usar8amos la mitad para los positivos y la otra mitad para los negativos! Los n,meros positivos van entonces desde -------- hasta B6666666 y los negativos desde =------hasta 66666666! POSITIVOS --------- es igual a - decimal --------. es igual a . decimal EEEEEEEEEEEE!! EEEEEEEEEEEE!! B6666666 es igual a F.GBG=A7GB decimal 1que seria el m#$imo positivo3 NEGATIVOS 66666666 seria el D. decimal 6666666% seria el DF decimal EEEEEEEEEEEE EEEEEEEEEEEE =------- seria DF.GBG=A7G= decimal 1que ser8a el m#$imo negativo3 >odemos probar averiguar en la /ommand Bar el valor de B6666666 para ello usamos el signo de interrogacin y a continuacin el valor que deseamos pasar a decimal,

;emos a la derecha que nos da el valor D%/'0)L correspondiente, que es F.GBG=A7GB sin problemas! )hora cuando deseamos averiguar el valor de =------- que es negativo, vemos que no nos lo muestra sigue dando el resultado para B6666666 1esto es un bug de la /ommand Bar3, as8 que como podemos hallar su valor en OLLYDBG C

/on este pequeHo truquito! ;amos a los registros y marcamos %)5

Luego hacemos /L'/I D%*%/4OD0OD'6Y

(os aparece una ventana en la que podemos colocarle a %)5 el valor que queremos, as8 que aprovechamos y usamos dicha ventana para hacer las conversiones, en el primer rengln tipeamos el valor 4%5)D%/'0)L que queremos convertir y en el segundo rengln nos aparcera el resultado en D%/'0)L! %n este caso vemos que =------- corresponde al valor DF.GB=A7G= decimal!

+i averiguo el valor de 66666666 all8 vale D. decimal!

>or lo tanto en la ventana de modi icar un registro podemos averiguar el valor de n,meros negativos per ectamente, luego para salir podemos /)(/%L)* as8 no realizamos ning,n cambio! CARACTERES ASCII 9no de los temas que debemos conocer tambi"n es la orma en que nuestro sistema escribe datos en la pantalla, para eso asigna a cada car#cter un valor he$adecimal, de orma que puede interpretar los mismos como si ueran letras, n,meros s8mbolos etc! De la teor8a de )+0 de /aos *eptante le copiamos la tablita ?e?e all8 vemos a continuacin el valor decimal, en la segunda columna el valor he$adecimal y en la tercera el car#cter o sea por e?emplo si quiero escribir un espacio en OLLY, tengo que usar el F- o AF decimal, cualquier car#cter que necesitemos, sea letra o numero podemos verlo en esta tablita!

Dec. Hex. Caract . 32 20 esp 33 21 ! 34 22 " 35 23 # 36 24 $ 37 25 % 38 26 & 39 27 ! 40 28 $ 41 29 ' 42 2A * 43 2B 44 2C 0 45 2D 3 46 2E 6 47 2F 9 48 30 0 49 31 1 50 32 2 51 33 3 52 34 4 53 35 5 54 36 6 55 37 7 56 38 8 57 39 9 58 3A N 59 3B Q 60 3C T 61 3D W 62 3E Z 63 3F ]

Dec. 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95

Hex. Caract . 40 @ 41 A 42 B 43 C 44 D 45 E 46 F 47 " 48 % 49 ( 4A + 4B . 4C 1 4D 4 4E 7 4F : 50 < 51 = 52 ? 53 A 54 B 55 D 56 F 57 H 58 J 59 L 5A O 5B R 5C U 5D X 5E [ 5F ^

Dec. 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127

Hex. Caract . 60 ` 61 a 62 b 63 c 64 d 65 e 66 67 # 68 & 69 ) 6A , 6B / 6C 2 6D 5 6E 8 6F ; 70 p 71 > 72 @ 73 s 74 C 75 E 76 G 77 I 78 K 79 M 7A P 7B S 7C V 7D Y 7E \ 7F 

>or lo dem#s la command bar cuando averiguamos el valor de un numero he$adecimal, nos proporciona tambi"n el car#cter )+/'' correspondiente si tuviera, veamos un e?emplo tipeemos en la command bar! C G@

;emos que G@ corresponde a la letra % may,scula, si en la tabla anterior buscamos G@ en la columna del medio que corresponde a he$a vemos que es la letra %

69

45

>or lo demas en la ventana del D90> del OLLYDBG, tenemos una columna que muestra los caracteres )+/'', si miramos all8 mismo en el crackme de /*9%4%)D la ventana del D90>!

;emos que al lado de la columna que representa los valores he$adecimales, esta la columna )+/'', donde podemos ver resaltadas algunas cadenas de te$to compuestas por combinaciones apropiadas de caracteres )+/''! QUE ES EL STACK O PILA %l stack o pila es una zona de la memoria, en la cual se van guardando datos que mas adelante deben ser recuperados! %l nombre >'L) es porque aseme?a un mazo o pila de cartas o bara?as que se encuentran en una mesa! %n dicho mazo, si agregas una nueva carta solo podes hacerlo arriba de la pila y si quiero sacar una ser# la de m#s arriba de la pila de cartas! %sa es la caracter8stica principal del stack es como un mazo de cartas, la carta que agregas a la pila ira arriba, y ser# la primera que salga, cuando quites una! Ya veremos mas adelante en la e$plicacin de las instrucciones la orma de modi icar o agregar y quitar cartas en nuestro mazo, o sea nuestro querido +<)/I que como recordamos del tute anterior esta representado en la parte in erior derecha del OLLYDBG!

Bueno creo que ya tienen bastante para quemarse un rato mas la cabeza nos vemos en la parte A donde e$plicaremos que son los registros y los lags y para que sirven! 4asta la parte A *icardo (arva?a -= de noviembre de F--@

Você também pode gostar