Está en la página 1de 17

SOFTWARE XTREME

Vamos a checar el software que nos permite cambiar rango de frecuencias para la serie
EM/EP y PRO

Ocuparemos solo una herramienta:

Ollydbg (muy buena herramienta)

Gracias al maestro Eulalio que me comento la primera pantalla que vamos a checar:












Yo no me haba dado cuenta de esto por que al instalar por primera vez el programa
toma como referencia esa fecha pero si saltas un ao te coloca un cartel de expirado
Y si regresamos la fecha de igual forma sigue expirado (yo no booteo mi maquina con
date jeje por eso no me di cuenta pero al ponerlo en otra me mando este cartel)

A echarle mano:

Vamos a comenzar por el Ollydbg ya que ni siquiera comienza a funcionar el programa
(a esta pantalla la llaman NAG son solo advertencias de periodos de prueba o
contadores de das) En este caso nuestro NAG es Expirado.

Abrimos el Ollydbg, presionamos F3 para abrir el programa, buscamos el programa en
la ruta que lo hayamos instalado en mi caso C:\Xtreme\Xtreme.exe
















Despus que termine el anlisis hacemos lo siguiente para ver la lista de string
(referencias) damos clic con el botn derecho sobre el cdigo del programa
Seleccionamos search for y despus all referenced text strings

























Nos manda a esta pantalla damos clic derecho y clic en Search for text
























Buscamos Expirado Desactivamos la casilla case sensitive

Nos mando a una referencia:






Esta no nos sirve por que no es una funcin solo es una etiqueta o un texto

Presionamos Ctrl +L (mayscula o minscula no importa) esta funcin es buscar
siguiente y caemos aqu



Nos manda a la instruccin 4260A0 que es un push 404420 con el texto Expirado.
Anoten estas referencias por que les sern tiles.

Damos doble clic en la instruccin y nos manda a donde esta en el cdigo del programa
Donde nos enva el mensaje de Expirado


















Vemos que hay un salto condicional en 426072 damos clic en el













Es un salto corto que va directo al mensaje de expirado sin importar sea verdad o falso.

Hacemos una pausa para notar otro punto importante del ollydbg si te colocas
sobre el salto te muestra el destino con una flecha y viceversa al colocarnos en el
destino nos muestra el salto que envia ahi

Aqui una lista de saltos condicionales esto es de lo mas importante que debemos
saber


Si no se lo aprenden al menos tnganla a la mano.

Continuemos seguimos subiendo hasta 425FF4 aqu hay un salto J E 004261CA (si es
igual salta a 004261CA) checamos que este salto pasa 4260A0 (mensaje de Expirado)
Vamos a ver a donde va presionamos Ctrl +G

Escribimos:


















Damos ok y nos manda aqu:

Otra vez buen ojo este salto nos lleva directo a la referencia de registrado a travs de
unos saltos menores no estamos tan perdidos volvemos pero anotamos el salto?????
Otra vez olly viene al rescate de los descuidados damos clic derecho sobre 4261CA
Seleccionamos Find referentes to y selected command
























Ah esta!!!! Damos doble clic sobre je 004261CA








Checamos que el salto sea realmente el de el Nag (Expirado) damos clic en el salto y
presionamos F2 colocamos un breakpoint para que cuando intente ejecutarlo el
programa se detenga. Presionamos F9 para comenzar a correr el programa y se detuvo
justo en nuestro breakpoint


Hacemos doble clic en el salto









Marcamos que salte siempre colocamos jmp 004261CA para revisar el salto

Otra pausa todos los cambios que hacemos en ollydbg son solo en memoria no
estamos tocando el archivo fsico

Damos clic en assemble ya nos aplico la instruccin que le dimos damos clic en cancel
para cerrar la ventana





















Vemos el cdigo:

























Creo que en este punto ya son mas observadores vean el cdigo todo se desfiguro se
agregaron bytes por el comando que escribimos y todas las direcciones cambiaron y no
se reconocen si se fijan tenemos signos de interrogacin del lado izquierdo y de el
derecho unknow command o sea que ya la regamos jejeje.

Pero como ya les comente el programa no lo hemos tocado vamos a ver como corregir
errores humanos presionamos Ctrl +P

Son los cambios que hemos hecho damos clic derecho sobre el y nos aparece este
mensaje. Damos clic en restore original code











Cerramos la ventanita de parches con la x a la derecha (eso es bsico disculpen si soy
muy explicito) nos devuelve a la ventana de cdigo y ya lo restauro a como estaba
elimino donde la regamos.

Entonces no podemos cambiar el salto???????
Ojo con este detalle vean que en Hexadecimal solo caben 12 caracteres por instruccin
al colocar el jmp 004261CA se movi parte del cdigo









Entonces vamos a ver esto otra vez doble clic sobre el salto condicional y cambiamos a
J MP 004261CA pero ahora marcamos la casilla fill with nops









Damos clic en assemble y despus en cancel para cerrar la ventana



















Ahora si el cdigo esta perfecto se agrego un nop pero los saltos siguen ah y correctos

Mucha vuelta pero me ahorre la explicacin larga del por que sirve esta funcin,
de paso aprendimos a corregir errores de la forma mas sencilla y a buscar saltos
condicionales y sus referencias.

Seguimos. Al agregar comandos se corren los bytes al siguiente offset al activar la
casilla de nop nos manda esos bytes extras a nada y al ejecutarlos solo los pasa

Tambin podemos negar la lgica del salto cambindolo de je a jne pero no les hubiera
mencionado de los nop y es bueno saberlo por que en ocasiones no te permite invertir el
salto a menos que agregues nops


Presionamos F9 para correr el programa

























Si no le aparece al frente tal vez este minimizado en la barra de tareas (eso lo hace a
veces pero los programas corren muy bien)

Ya nos brincamos el NAG de Expirado pero ahora ya nos fregamos por que nos pide un
password que coincida con el cdigo de el equipo

No desesperemos vamos a batear todo lo que nos mande

Aqu la recomendacin de uno de mis maestros.

Colocamos un cdigo el que mejor nos parezca uno que sea absurdo para ser la clave
correcta en mi caso colocare 151515 doy clic en registrar y nada ni me registra ni me
dice que esta mal la clave entonces por donde le llegamos si no aparece ningn texto
para buscarlo?

Me dijo el maestro sabiamente:

Los programas en Visual Basic se cazan por las call

Podemos cazar este botn con algn decompilador de Visual Basic como :
VBReFormer
VB Decompiler Pro

Entre otras
Son muy buenas utilidades no estara mal tenerlas en nuestro arsenal


Pero contamos con nuestro amigo olly.
Sobre el cdigo damos clic derecho y seleccionamos search for y all intermodular
calls



















Nos aparece esta ventana y damos clic derecho y seleccionamos set breakpoint on
every command
(Ojo con esto por que se va a parar en muchas partes si no lo sabemos usar)




















Todo se ilumino de rojo. Ahora vamos al programa damos clic en registrar con nuestro
numero 151515



Se detuvo aqu























Esto de los password es de lo que mas buscamos ojo:

Presionamos F8 y vamos a avanzar paso por paso cada instruccin cada vez que
oprimimos baja la barra de instruccin, al llegar al offset 425747 vemos algo interesante
de el lado derecho en la ventana Registers vemos que EAX coincide con el numero que
nosotros proporcionamos ya estamos cerca



Seguimos bajando con F8 hasta el offset 425819 es un J E 00425942
Otra vez buen ojo


Si es igual salta pero vemos que mas abajo comienza otro registrado entonces se lo esta
brincando por que no nos quiere registrar (por lgica) vamos a cambiar el salto doble
clic sobre J E 00425942 e invertimos su lgica por J NE 00425942



Damos clic en assemble y despus en cancel (para cerrar la ventana)













Quedo as:


Ya no nos va a saltar
Oprimimos F9 hasta que pase por los dems breakpoints y cuando aparezca running en
la parte izquierda arriba en el olly quiere decir que el programa ya corre por si solo o
que ya esta activo vamos al programa y ya nos registr


Volvemos al olly Y buscamos otra vez todas las intermodular calls damos clic derecho
y seleccionamos esta vez remove all breakpoints














En el programa Xtreme presionamos la tecla abrir



Ya lo podemos utilizar ojo con esto aqu esta un contador en la parte de abajo a la
izquierda.

Ahora tenemos los saltos para modificar el programa. Casi todos comenzamos a trabajar
con editores hexadecimales como Winhex, Hexworkshop, Ultraedit u otros.

Ahora les pregunto quien anoto todos los cambios que realizamos como lo suger al
principio?

Pues yo no los anote aunque deb. De nuevo olly al rescate, sobre el cdigo damos clic
derecho y seleccionamos Copy to executable y despus All modifications



Aparece este mensaje damos clic en copy all



Nos manda a otra ventana solo la cerramos y nos pregunta:


Solo esta comprobando que sabemos lo que hacemos damos clic en si despus nos
pregunta con que nombre lo guardamos por defecto coloca el nombre de el mismo
archivo que abrimos en su misma ruta.

Sobrescribimos el archivo.

Otro detalle del Olly cuando sobrescribimos el archivo nos hace una copia con el mismo
nombre con extensin .bak por si pese a todo nos equivocamos es un backup


Cerramos el Ollydbg y abrimos el Xtreme al natural

Nos detiene y nos pide el password otra vez pero ya lo crackeamos as que no
colocamos nada solo damos clic en registrar y lo acepta el programa ya funciona

Pero para el que quiere ir ms all y quitar esta ventana ojo:

Abrimos otra vez el Ollydbg abrimos el programa Xtreme
Ahora vamos a buscar de nuevo las instrucciones que modificamos la primera que es en
el offset 425FF4 cambiamos el salto je por un jmp 4261CA
Tambien funciona jne 4261CA









Abajo en el offset 4261F2 hace otro salto que nos brinca otra instruccin de registrado
ya es la tercera que nos topamos. De nuevo invertimos la lgica del salto je por jne


Corremos el programa con F9 y se abre sin ningn problema y sin pedir password
Pudimos encontrar esto y saltar sin necesidad de cazar el password pero como ya
mencione para nosotros lo ms importante es saber cazar un password.

Ahora vamos a ver como cambio el programa:

Abrimos el Hexworkshop y presionamos Ctrl +K (para comparar)

















Tenemos 3 diferencias de el original al crackeado en mi caso cambie las 3 direcciones
de J E a J NE
Queda asi:


Son las que dice replace en la ventana derecha abajo

Entonces estos son los cortes:

Offset
x2581A de 84 a 85
x25FF5 de 84 a 85
x261F3 de 84 a 85

Aunque es mas rpido explicarlo que encontrarlo.
Ya saben lo que se hace para proporcionar offsets a los colegas espero que todo el que
lea esto busque aprender mas.

Recomiendo busquen tutoriales de los programas que utilizan para
Desensamblar: Wdasm, IDA, Bdasm, Reflexil, Ildasm entre muchos mas
editar : Winhex, Hexworkshop entre otros
debuggers: Ollydbg y Softice

Saludos de nuevo a todos los maestros que permiten aprendamos un poco de su
sabidura y a los colegas que siguen aprendiendo.

Tutorial hecho por un novato en busqueda del titulo maestro (la veo difcil)














By Toshi