{"id":807,"date":"2026-04-22T21:44:29","date_gmt":"2026-04-22T21:44:29","guid":{"rendered":"https:\/\/hackcuba.net\/?p=807"},"modified":"2026-04-22T21:49:45","modified_gmt":"2026-04-22T21:49:45","slug":"trabajando-con-ollydbg","status":"publish","type":"post","link":"https:\/\/hackcuba.net\/?p=807","title":{"rendered":"Trabajando con OLLYDBG"},"content":{"rendered":"\n<p>Luego de haber visto a grandes trazos, la ubicaci\u00f3n y las principales partes del OLLYDBG, debemos aprender el sistema de numeraci\u00f3n utilizado y cu\u00e1l es el concepto de stack aunque sea para tener una idea. Luego profundizaremos.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p>SISTEMAS NUM\u00c9RICOS<br>: Los tres sistemas num\u00e9ricos que m\u00e1s se utilizan son el binario, el decimal y el hexadecimal.<\/p>\n\n\n\n<p>El concepto b\u00e1sico que deben tener de ellos es el siguiente:<\/p>\n\n\n\n<p>\u2022 BINARIO: Se representan los n\u00fameros con dos caracteres el 0 y 1 por eso se llama BINARIO.<br>\u2022 DECIMAL: Se representa con todos los d\u00edgitos (del 0 al 9) por eso se llama decimal.<br>\u2022HEXADECIMAL: Se representan todos los n\u00fameros con caracteres del 0 al F (del 0 al 9, m\u00e1s A, B, C, D, E y F, o sea, 16 caracteres en total).<\/p>\n\n\n\n<p>Normalmente, a partir de aqu\u00ed cuando diga un n\u00famero y no diga a que sistema de numeraci\u00f3n pertenece es porque es HEXADECIMAL, que es el que utiliza OLLYDBG, si son decimales o binarios aclarar\u00e9 expresamente.<\/p>\n\n\n\n<p>Existen f\u00f3rmulas matem\u00e1ticas que no utilizaremos aqu\u00ed para convertir n\u00fameros de un sistema al otro (y que no son muy simp\u00e1ticas), pero llegado el momento, un cracker realmente usa la CALCULADORA DE WINDOWS, que es lo mas r\u00e1pido y directo, y no va a ponerse a hacer cuentas de potencias, sumas etc. para convertir un n\u00famero de un sistema a otro.<\/p>\n\n\n\n<p>Abramos la CALCULADORA DE WINDOWS y prepar\u00e9mosla.<br>Cambiemos a calculadora cient\u00edfica en el men\u00fa ver<br>Vemos que, por defecto, se inicia en DECIMAL, y al lado tiene la opci\u00f3n de cambiar a HEXADECIMAL (HEX), OCTAL (OCT) y BINARIO (BIN).<\/p>\n\n\n\n<p>El Octal, que representa la numeraci\u00f3n con 8 caracteres no es muy usado en cracking pero la calculadora trae dicha opci\u00f3n incluida, si se llegara a necesitar.<\/p>\n\n\n\n<p>Pues para pasar un n\u00famero de un sistema a otro es muy sencillo, pongo la calculadora en el sistema del n\u00famero que quiero cambiar, por ejemplo si quiero cambiar 55 de DECIMAL a HEXA, pongo la calculadora en DECIMAL y tecleo 55.<\/p>\n\n\n\n<p>Ahora cambio la calculadora a HEXA y autom\u00e1ticamente me lo convierte a ese sistema de numeraci\u00f3n.<br>Ah\u00ed est\u00e1, 55 decimal equivale a 37 hexadecimal.<br>Resalt\u00e9 las letras A, B, C, D, E, F para ver que al pasar la calculadora a HEXA se nos habilita la posibilidad de teclear las mismas, que estaban deshabilitadas en modo DECIMAL.<\/p>\n\n\n\n<p>Creo que esta es la forma m\u00e1s pr\u00e1ctica de manejar los sistemas de numeraci\u00f3n y poder pasar valores de uno a otro sin grandes complicaciones.<\/p>\n\n\n\n<p>N\u00daMEROS NEGATIVOS EN HEXADECIMAL Esto es lo m\u00e1s duro de entender, por esto trataremos de ir despacio. En el sistema de numeraci\u00f3n hexadecimal, \u00bfc\u00f3mo podemos representar los n\u00fameros negativos, ya que no se puede poner el signo menos delante como cuando hacemos en la tradicional numeraci\u00f3n decimal?<br>\u00bfC\u00f3mo hacer para representar en formato hexadecimal, -1 por ejemplo?<\/p>\n\n\n\n<p>Pues aqu\u00ed viene el problema y espero que se entienda.<\/p>\n\n\n\n<p>Solo tenemos la posibilidad de escribir en hexadecimal desde 00000000 hasta FFFFFFFF, \u00bfc\u00f3mo representar\u00edamos los n\u00fameros negativos?<\/p>\n\n\n\n<p>Pues bien, a un genio se le ocurri\u00f3 que en vez de representar desde 00000000 hasta FFFFFFFF todos los n\u00fameros positivos, usar\u00edamos la mitad para los positivos y la otra mitad para los negativos.<\/p>\n\n\n\n<p>Los n\u00fameros positivos van entonces desde 00000000 hasta 7FFFFFFF y los negativos desde 80000000 hasta FFFFFFFF.<\/p>\n\n\n\n<p>POSITIVOS 000000000 es igual a 0 decimal 000000001 es igual a 1 decimal<br>\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026..<br>\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026..<br>7FFFFFFF es igual a 2147483647 decimal (que ser\u00eda el m\u00e1ximo positivo)<\/p>\n\n\n\n<p>NEGATIVOS FFFFFFFF ser\u00eda el -1 decimal FFFFFFFE ser\u00eda el -2 decimal<br>\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026<br>\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026<br>80000000 ser\u00eda -2147483648 decimal (que ser\u00eda el m\u00e1ximo negativo)<\/p>\n\n\n\n<p>Podemos probar averiguar en la Command Bar el valor de 7FFFFFFF, para ello usamos el signo de interrogaci\u00f3n y a continuaci\u00f3n, el valor que deseamos pasar a decimal,<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"501\" height=\"44\" src=\"https:\/\/hackcuba.net\/wp-content\/uploads\/2026\/04\/Art_50.png\" alt=\"\" class=\"wp-image-808\" srcset=\"https:\/\/hackcuba.net\/wp-content\/uploads\/2026\/04\/Art_50.png 501w, https:\/\/hackcuba.net\/wp-content\/uploads\/2026\/04\/Art_50-300x26.png 300w\" sizes=\"auto, (max-width: 501px) 100vw, 501px\" \/><\/figure>\n\n\n\n<p>Vemos a la derecha, que nos da el valor DECIMAL correspondiente, que es 2147483647.<\/p>\n\n\n\n<p>Ahora, cuando deseamos averiguar el valor de 80000000 (que es negativo) vemos que no nos lo muestra. Sigue dando el resultado para 7FFFFFFF (esto es un bug de la Command Bar). As\u00ed que, \u00bfc\u00f3mo podemos hallar su valor en OLLYDBG?<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"501\" height=\"44\" src=\"https:\/\/hackcuba.net\/wp-content\/uploads\/2026\/04\/Art_51-1.png\" alt=\"\" class=\"wp-image-809\" srcset=\"https:\/\/hackcuba.net\/wp-content\/uploads\/2026\/04\/Art_51-1.png 501w, https:\/\/hackcuba.net\/wp-content\/uploads\/2026\/04\/Art_51-1-300x26.png 300w\" sizes=\"auto, (max-width: 501px) 100vw, 501px\" \/><\/figure>\n\n\n\n<p>Con este peque\u00f1o truquito.<\/p>\n\n\n\n<p>Vamos a los registros y marcamos EAX<br>Luego hacemos CLICK DERECHO-MODIFY<br>Nos aparece una ventana en la que podemos colocarle a EAX el valor que queremos, as\u00ed que aprovechamos y usamos dicha ventana para hacer las conversiones. En el primer rengl\u00f3n tecleamos el valor HEXADECIMAL que queremos convertir y en el segundo rengl\u00f3n nos aparecer\u00e1 el resultado en DECIMAL.<\/p>\n\n\n\n<p>En este caso vemos que 80000000 corresponde al valor -214783648 decimal<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"236\" height=\"172\" src=\"https:\/\/hackcuba.net\/wp-content\/uploads\/2026\/04\/Art_52-1.png\" alt=\"\" class=\"wp-image-810\"\/><\/figure>\n\n\n\n<p>Si averig\u00fco el valor de FFFFFFFF all\u00ed vale -1 decimal.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"236\" height=\"172\" src=\"https:\/\/hackcuba.net\/wp-content\/uploads\/2026\/04\/Art_53-1.png\" alt=\"\" class=\"wp-image-811\"\/><\/figure>\n\n\n\n<p>Por lo tanto, en la ventana de modificar un registro podemos averiguar el valor de n\u00fameros negativos perfectamente. Luego para salir podemos CANCELAR, as\u00ed no realizamos ning\u00fan cambio.<\/p>\n\n\n\n<p>CARACTERES ASCII Uno de los temas que debemos conocer tambi\u00e9n es la forma en que nuestro sistema escribe datos en la pantalla, para eso asigna a cada car\u00e1cter un valor hexadecimal, de forma que puede interpretar los mismos como si fueran letras, n\u00fameros, s\u00edmbolos etc.<\/p>\n\n\n\n<p>De la teor\u00eda de ASM de Caos Reptante le copiamos la tabla. All\u00ed vemos a continuaci\u00f3n el valor decimal, en la segunda columna el valor hexadecimal y en la tercera el car\u00e1cter, por ejemplo: si quiero escribir un espacio en OLLY, tengo que usar el 20 o 32 decimal, cualquier car\u00e1cter que necesitemos, sea letra o n\u00famero, podemos verlo en esta tablita.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>Dec.<\/strong><\/td><td><strong>Hex.<\/strong><\/td><td><strong>Caract.<\/strong><\/td><td rowspan=\"33\"><\/td><td><strong>Dec.<\/strong><\/td><td><strong>Hex.<\/strong><\/td><td><strong>Caract.<\/strong><\/td><td rowspan=\"33\"><\/td><td><strong>Dec.<\/strong><\/td><td><strong>Hex.<\/strong><\/td><td><strong>Caract.<\/strong><\/td><\/tr><tr><td>32<\/td><td>20<\/td><td>esp<\/td><td>64<\/td><td>40<\/td><td>@<\/td><td>96<\/td><td>60<\/td><td>`<\/td><\/tr><tr><td>33<\/td><td>21<\/td><td>!<\/td><td>65<\/td><td>41<\/td><td>A<\/td><td>97<\/td><td>61<\/td><td>a<\/td><\/tr><tr><td>34<\/td><td>22<\/td><td>\u00ab<\/td><td>66<\/td><td>42<\/td><td>B<\/td><td>98<\/td><td>62<\/td><td>b<\/td><\/tr><tr><td>35<\/td><td>23<\/td><td>#<\/td><td>67<\/td><td>43<\/td><td>C<\/td><td>99<\/td><td>63<\/td><td>c<\/td><\/tr><tr><td>36<\/td><td>24<\/td><td>$<\/td><td>68<\/td><td>44<\/td><td>D<\/td><td>100<\/td><td>64<\/td><td>d<\/td><\/tr><tr><td>37<\/td><td>25<\/td><td>%<\/td><td>69<\/td><td>45<\/td><td>E<\/td><td>101<\/td><td>65<\/td><td>e<\/td><\/tr><tr><td>38<\/td><td>26<\/td><td>&amp;<\/td><td>70<\/td><td>46<\/td><td>F<\/td><td>102<\/td><td>66<\/td><td>f<\/td><\/tr><tr><td>39<\/td><td>27<\/td><td>&#8216;<\/td><td>71<\/td><td>47<\/td><td>G<\/td><td>103<\/td><td>67<\/td><td>g<\/td><\/tr><tr><td>40<\/td><td>28<\/td><td>(<\/td><td>72<\/td><td>48<\/td><td>H<\/td><td>104<\/td><td>68<\/td><td>h<\/td><\/tr><tr><td>41<\/td><td>29<\/td><td>)<\/td><td>73<\/td><td>49<\/td><td>I<\/td><td>105<\/td><td>69<\/td><td>i<\/td><\/tr><tr><td>42<\/td><td>2A<\/td><td>*<\/td><td>74<\/td><td>4A<\/td><td>J<\/td><td>106<\/td><td>6A<\/td><td>j<\/td><\/tr><tr><td>43<\/td><td>2B<\/td><td>+<\/td><td>75<\/td><td>4B<\/td><td>K<\/td><td>107<\/td><td>6B<\/td><td>k<\/td><\/tr><tr><td>44<\/td><td>2C<\/td><td>,<\/td><td>76<\/td><td>4C<\/td><td>L<\/td><td>108<\/td><td>6C<\/td><td>l<\/td><\/tr><tr><td>45<\/td><td>2D<\/td><td>&#8211;<\/td><td>77<\/td><td>4D<\/td><td>M<\/td><td>109<\/td><td>6D<\/td><td>m<\/td><\/tr><tr><td>46<\/td><td>2E<\/td><td>.<\/td><td>78<\/td><td>4E<\/td><td>N<\/td><td>110<\/td><td>6E<\/td><td>n<\/td><\/tr><tr><td>47<\/td><td>2F<\/td><td>\/<\/td><td>79<\/td><td>4F<\/td><td>O<\/td><td>111<\/td><td>6F<\/td><td>o<\/td><\/tr><tr><td>48<\/td><td>30<\/td><td>0<\/td><td>80<\/td><td>50<\/td><td>P<\/td><td>112<\/td><td>70<\/td><td>p<\/td><\/tr><tr><td>49<\/td><td>31<\/td><td>1<\/td><td>81<\/td><td>51<\/td><td>Q<\/td><td>113<\/td><td>71<\/td><td>q<\/td><\/tr><tr><td>50<\/td><td>32<\/td><td>2<\/td><td>82<\/td><td>52<\/td><td>R<\/td><td>114<\/td><td>72<\/td><td>r<\/td><\/tr><tr><td>51<\/td><td>33<\/td><td>3<\/td><td>83<\/td><td>53<\/td><td>S<\/td><td>115<\/td><td>73<\/td><td>s<\/td><\/tr><tr><td>52<\/td><td>34<\/td><td>4<\/td><td>84<\/td><td>54<\/td><td>T<\/td><td>116<\/td><td>74<\/td><td>t<\/td><\/tr><tr><td>53<\/td><td>35<\/td><td>5<\/td><td>85<\/td><td>55<\/td><td>U<\/td><td>117<\/td><td>75<\/td><td>u<\/td><\/tr><tr><td>54<\/td><td>36<\/td><td>6<\/td><td>86<\/td><td>56<\/td><td>V<\/td><td>118<\/td><td>76<\/td><td>v<\/td><\/tr><tr><td>55<\/td><td>37<\/td><td>7<\/td><td>87<\/td><td>57<\/td><td>W<\/td><td>119<\/td><td>77<\/td><td>w<\/td><\/tr><tr><td>56<\/td><td>38<\/td><td>8<\/td><td>88<\/td><td>58<\/td><td>X<\/td><td>120<\/td><td>78<\/td><td>x<\/td><\/tr><tr><td>57<\/td><td>39<\/td><td>9<\/td><td>89<\/td><td>59<\/td><td>Y<\/td><td>121<\/td><td>79<\/td><td>y<\/td><\/tr><tr><td>58<\/td><td>3A<\/td><td>:<\/td><td>90<\/td><td>5A<\/td><td>Z<\/td><td>122<\/td><td>7A<\/td><td>z<\/td><\/tr><tr><td>59<\/td><td>3B<\/td><td>;<\/td><td>91<\/td><td>5B<\/td><td>[<\/td><td>123<\/td><td>7B<\/td><td>{<\/td><\/tr><tr><td>60<\/td><td>3C<\/td><td>&lt;&nbsp;<\/td><td>92<\/td><td>5C<\/td><td>\\<\/td><td>124<\/td><td>7C<\/td><td>|<\/td><\/tr><tr><td>61<\/td><td>3D<\/td><td>=<\/td><td>93<\/td><td>5D<\/td><td>]<\/td><td>125<\/td><td>7D<\/td><td>}<\/td><\/tr><tr><td>62<\/td><td>3E<\/td><td>&gt;&nbsp;<\/td><td>94<\/td><td>5E<\/td><td>^<\/td><td>126<\/td><td>7E<\/td><td>~<\/td><\/tr><tr><td>63<\/td><td>3F<\/td><td>?<\/td><td>95<\/td><td>5F<\/td><td>_<\/td><td>127<\/td><td>7F<\/td><td><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Por lo dem\u00e1s, la Command Bar cuando averiguamos el valor de un n\u00famero hexadecimal, nos proporciona tambi\u00e9n el car\u00e1cter ASCII correspondiente si tuviera, veamos un ejemplo: tipeamos en la Command Bar<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"452\" height=\"62\" src=\"https:\/\/hackcuba.net\/wp-content\/uploads\/2026\/04\/Art_54-1.png\" alt=\"\" class=\"wp-image-812\" srcset=\"https:\/\/hackcuba.net\/wp-content\/uploads\/2026\/04\/Art_54-1.png 452w, https:\/\/hackcuba.net\/wp-content\/uploads\/2026\/04\/Art_54-1-300x41.png 300w\" sizes=\"auto, (max-width: 452px) 100vw, 452px\" \/><\/figure>\n\n\n\n<p>Vemos que 45 corresponde a la letra E may\u00fascula, si en la tabla anterior buscamos 45 en la columna del medio que corresponde a hexa vemos que es la letra E.<\/p>\n\n\n\n<p>69 45 E<\/p>\n\n\n\n<p>Por lo dem\u00e1s, en la ventana del DUMP del OLLYDBG, tenemos una columna que muestra los caracteres ASCII, si miramos all\u00ed mismo, en el crackme de CRUEHEAD, la ventana del DUMP.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"276\" height=\"320\" src=\"https:\/\/hackcuba.net\/wp-content\/uploads\/2026\/04\/Art_55-1.png\" alt=\"\" class=\"wp-image-813\" style=\"width:446px;height:auto\" srcset=\"https:\/\/hackcuba.net\/wp-content\/uploads\/2026\/04\/Art_55-1.png 276w, https:\/\/hackcuba.net\/wp-content\/uploads\/2026\/04\/Art_55-1-259x300.png 259w\" sizes=\"auto, (max-width: 276px) 100vw, 276px\" \/><\/figure>\n\n\n\n<p>Vemos que al lado de la columna que representa los valores hexadecimales, esta la columna ASCII, donde podemos ver resaltadas algunas cadenas de texto compuestas por combinaciones apropiadas de caracteres ASCII.<\/p>\n\n\n\n<p>QUE ES EL STACK O PILA<\/p>\n\n\n\n<p>El stack o pila es una zona de la memoria en la cual se van guardando datos que m\u00e1s adelante deben ser recuperados. El nombre PILA es porque asemeja un mazo o pila de cartas o barajas que se encuentran en una mesa.<br>En dicho mazo, si agregas una nueva carta solo puedes hacerlo encima de la pila y si quiero sacar una ser\u00e1 la de m\u00e1s arriba de la pila de cartas.<br>Esa es la caracter\u00edstica principal del stack, que es como un mazo de cartas: la carta que agregas a la pila ira arriba, y ser\u00e1 la primera que salga, cuando quites una.<br>Ya veremos m\u00e1s adelante en la explicaci\u00f3n de las instrucciones la forma de modificar o agregar y quitar cartas en nuestro mazo, o sea nuestro querido STACK que como recordamos del tutorial anterior esta representado en la parte inferior derecha del OLLYDBG.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"280\" height=\"133\" src=\"https:\/\/hackcuba.net\/wp-content\/uploads\/2026\/04\/Art_56.png\" alt=\"\" class=\"wp-image-814\" style=\"width:469px;height:auto\"\/><\/figure>\n\n\n\n<p>Bueno creo que ya tienen bastante para quemarse un rato m\u00e1s la cabeza. Nos vemos en la III parte, donde explicaremos qu\u00e9 son los registros y los flags y para qu\u00e9 sirven.<\/p>\n\n\n\n<p>Para descargar el desamblador puede usar su pagina web oficial o puede encontrarlo en nuestro foro <a href=\"https:\/\/hackcuba.net\/foro\/viewtopic.php?t=82\">https:\/\/hackcuba.net\/foro\/viewtopic.php?t=82<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Luego de haber visto a grandes trazos, la ubicaci\u00f3n y las principales partes del OLLYDBG, debemos aprender el<\/p>\n","protected":false},"author":2,"featured_media":737,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[36],"tags":[222,223,38],"class_list":["post-807","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-proyecto-blackhat","tag-cracking","tag-ollydbg","tag-proyecto-blackhat"],"_links":{"self":[{"href":"https:\/\/hackcuba.net\/index.php?rest_route=\/wp\/v2\/posts\/807","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hackcuba.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hackcuba.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hackcuba.net\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/hackcuba.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=807"}],"version-history":[{"count":2,"href":"https:\/\/hackcuba.net\/index.php?rest_route=\/wp\/v2\/posts\/807\/revisions"}],"predecessor-version":[{"id":817,"href":"https:\/\/hackcuba.net\/index.php?rest_route=\/wp\/v2\/posts\/807\/revisions\/817"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/hackcuba.net\/index.php?rest_route=\/wp\/v2\/media\/737"}],"wp:attachment":[{"href":"https:\/\/hackcuba.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=807"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hackcuba.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=807"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hackcuba.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=807"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}