Eliminar Palabra DEMO en Programa

Iniciado por guruangel, 6 Diciembre 2007, 23:29 PM

0 Miembros y 3 Visitantes están viendo este tema.

guruangel

Hola chicos:

Recien me inicio en estos lados y pues he empezado con un programa bastante sencillo que se encarga de modificar un archivo binario externo... Es decir... el programa abre un archivo .DAT lee las variable y modifica cierta parte con una formula matematica y luego guarda el archivo de nuevo... la unica pega es que en el "demo" coloca la palabra "DEMOSTRACION" en un campo de ese archivo binario que modifica...

La tarea que he querido hacer es desemsamblar el programa y eliminar la orden donde coloca la palabra "DEMOSTRACION" para que haga lo demas y me deje ese campo sin modificar... Lo he desemsanblado con W332dasm v9 y pues he encontrado las palabra Demostracion una vez, mas el nombre del archivo que modifica dos veces...

El nombre del archivo .DAT que modifica un poco mas abajo de la palabra demostracion y luego mucho mas arriba el archivo .DAT de nuvo con muchas mas instrucciones...

El problema es que he modificado algunos bytes y pues me deja de colocar la palabra "demostracion" pero el problema es que lo sustituye por espacio en blanco y en otros caso por puntos... pero el problema es que en donde va a poner la palabra "demostracion" ya hay texto y pues no me interesa que modifique ese texto... solo me interesa que haga lo demas sin colocar demostracion y asi no modificar el texto que ya esta...

cosas importante que logre ver...

"Palabra Demostracion"
mov edx, 00477608
call 00404064

"archivo binario que modifica"
mox eax, 00477634
call 0040846c
tests al, al
je 004775c0
push 00000002

y luego mucho mas arriba aparece de nuevo el archivo binario que se modifica con las siguientes instrucciones:

mov eax, 0047752c
call 0040846c
test al, al
je 004774f5
mov dl, 01
mov eax, dword ptr [ebx+0000032c]
mov ecx, dword ptr [eax]
call [ecx+64]
jmp 00477502

Mi pregunta es:

Me podrias explicar un poco que hace la rutina aqui?? veo que hace unos llamados y unos salto... ademas de algunos movimientos... pero hay algunas cosas que no entiendo como "mov dl, 01" que hace especificamente esto..

Les recuerdo que me recien comienzo y todos los manuales que consigo son con oddy o con softice y ninguno que me explique que tengo que modificar ni como en w32dasm...

Me agradaria que me explicara que hace el programa y a donde debo de ir a modificar... o que debo de buscar para modificarlo... segun tengo entendido tendria que buscar un salto y modificarlo... pero cual salto?? y modificarlo con cual digito?? utilizo el Hex workshop para modificar el archivo hex...

Muchas gracias de antemano por quienes me puedan ayudar a explicar... se que es demasiado facil el programa para ustedes pero hay muchas cosas que no comprendo... y pues quiero que me ayuden para seguir asi progresivamente avanzando... muchas gracias...

Si alguien quiere revisar el programa o modificarlo y luego decirme como se hace para entender la rutina y saber que teniamos que modificar... pues me avisan y se los paso a traves de un servidor publico o si me dejan su correo se lo paso y asi me ayudan analizando mejor el codigo... Mil Gracias

Karman

mov dl, 01 copia al registro dl "01", habría que ver el código para darte una explicación mas completa... te convendría subirlo a algún server gratuito y si alguien tiene tiempo que lo vea y te de una mano...

S2

guruangel

Aqui esta el archivo a modificar... Por si alguien se atreve a ayudarme con el codigo... Si lo modifica puede explicarme luego que modifico para poder yo aprender...

http://www.zshare.net/download/5432772e353fff/

Gracias de Antemano al valiente...

karmany

Hola guruangel, bienvenido.

He echado un vistazo a tu archivo ejecutable y da error al intentar leer una zona de memoria en una dirección que no pertenece al ejecutable.
He analizado la Import Table y no logro ver cual es el fallo. ¿Has arreglado correctamente la IAT? ¿Es el ejecutable original? yo diría que no.

Mira, las librerías que importa son todas de system32 y además el programa está compilado con Delphi, así que no debería tener ninguna dependencia más (en principio, solamente para cargarlo y llegar al OEP).
Yo particularmente creo que el dumpeado que has hecho no es correcto. Para no cometer errores sube solamente el instalador y así no habrá problemas...

Un saludo.
karmany

PD. Para localizar los eventos en Delphi puedes utilizar Dede, EA2, MiniDe y muchos programas más, que te dirán mucha información.
Una última cosa... en vez de analizarlo con WinDasm utiliza el OllyDBG que tiene muchísimas más opciones y es mucho más sencillo dar con la solución a tu problema.

guruangel


Gracias por responder chicos...

Les comento que he subido el instalador de nuevo y ademas algunas otras instrucciones para que se le haga mas facil ayudarme... Ya he probado con el OllyDBG y el OllyPersonal y pues ambos me siguen pareciendo extraños... Estoy dandole con el curso de Ricardo pero a veces me medio pierdo entre los saltos y la estructura del programa... Quizas este programa no es tan facil o es muy diferente al tener que eliminar un NAG o buscar un serial...

Aqui les dejo el programa original.... con su instalador y ademas el archivo binario que modifica solo para que le echen un vistazo... y tambien les dejo un supuesto CODIGO FUENTE que encontre que es del mismo programa... Pueden analizar la estructura de como esta diseñado el programa. Aunque no estoy seguro que sea del mismo ejecutable que les estoy pasando... pero hace lo mismo... Si alguien pudiera compilarlo y pasarme el ejecutable estare muy agradecido igualmente... Eso tambien me ayudaria a aprender a programar... jejejeje

Muchas gracias de antemano nuevamente y pues seguire con los manuales de Ricardo a ver si doy con el problema... Lo que si puedo asegurarle que me dijo el PEiD es que esta diseñado en Delphi y no esta protegido... Aqui el enlace de descarga... Disculpen que sea de 5 megas...

http://www.zshare.net/download/5445445f048502/

Gracias futuros colegas.. :D




Shaddy

Pues no logro ver los cambios que me dices, he cogido el .dat que tu subiste y el otro, y lo he "modificado" segun dice el programa, hice una comparacion binaria y queda igual, así que no se que es lo que modifica, tampoco tiene cadenas que digan "DEMO" y el programa si que vi zonas interesantes pero si no puedo ver que es lo que quieres hacer exactamente no sirve de nada.

Salu2..
"Si buscas resultados diferentes, no hagas siempre lo mismo" (Albert Einstein)

http://abssha.reversingcode.com
http://www.reversingcode.com

socketz

El programa que has colgado es el completo porque a mi no me pone nada de que es una versión Demo :S menuda ***** de programa por cierto

guruangel


Hola Chicos:

Primero que nada... No estoy loco... jejeje... Estoy seguro que el archivo es DEMO... lo que pasa es que no hace lo que comunmente hacen los demas demo... no marca "DEMO" por ningun lado... dejenme explicarle como funciona el programa para los que me quieran ayudar...

Aqui esta el mismo ultimo enlace que subi:

http://www.zshare.net/download/5445445f048502/

Alli encontraran tres carpetas... En uno instalan el programa... en la otra carpeta esta el archivo DAT a modificar... y una ultima con un codico fuente que es supuestamente de una aplicacion como la de este demo segun supongo... pero que aun no he conseguido compilar porque me da una serie de errores...

Al instalarlo se van a la carpeta de programa y encontraran dos archivos... uno que esta realizado en Delphi 7 y otro secundario que es realizado en un compilador bajo DOS...

ok... abren el programa y seleccionan de la lista el archivo binario que esta incluido en la carpeta de descarga... y luego que le dan "Realizar Cambios" me aparece una ventana donde dice "Cambios realizados satisfactoriamente" y luego cerramos el programa...

Segun entiendo el programa diseñado en delphi (que es el que se supone hay que crackear) tiene una serie de modificaciones que hace al archivo binario... unas multiplicaciones y divisiones que hace a algunas variables de ese archivo... pero ademas de todo eso... tambien selecciona una descripcion que aparece en ese archivo binario y las cambia por la palabra "Demostracion" y lo guarda conjuntamente con las modificaciones que hace a las demas variables...

Solo necesito que el haga las modificaciones a las variables pero que cuando tenga que modificar la variable "descripcion" no la modifique con la palabra "demostracion" sino que la deje funcionando tal cual como esta con la descripcion que tiene...

Prueben y veran que si abren el archivo binario con el bloc de notas despues que lo hayan modificado se incluye la palabra "Demostracion" en el archivo binario...

Lo que no se es si el programa que hay que crackear es el archivo Delphi o es el otro archivo realizado en DOS que no he encontrado que ningun desensamblador me lo reconozca y menos se con que esta diseñado... Gracias de antemano de nuevo y pues no creo que sea tan dificil de verificar... Ayudenmeeeee pleaseeee

Shaddy

Pues te digo que hice tal y como tu has dicho, y no me MODIFICA ABSOLUTAMENTE NADA, tal como tu lo pusiste ahí, yo lo he hecho, y el .DAT me lo deja igual, es más, le pase el ultra compare (de ultraedit) y no detecto ni un solo cambio.

Necesito más información.

Salu2..
"Si buscas resultados diferentes, no hagas siempre lo mismo" (Albert Einstein)

http://abssha.reversingcode.com
http://www.reversingcode.com

guruangel

Ok Amigo ShadowDark:

No se como explicarme mas... Pero le agrego los archivos modificados aqui... en esta direccion:

http://www.zshare.net/download/5548986c07aa4b/

Solo puedo explicarte que en este ultimo paquete te he puesto una carpeta con el archivo binario original (Este es mas pequeño que el anterior... es otro) y en otra carpeta el archivo binario modificado... puedes abrirlo con notepad y veras que aparece la palabra "demostracion" Ademas te agrego captura de pantalla de antes de la modificacion en la misma carpeta... y despues de la modificacion para que veas a lo que me refiero con la modificacion...

Ademas, agrego el archivo que me genera w32dasm donde me aparecen los comentarios del archivo a modificar... ademas de la palabra "demostracion"... Espero te sirva esta informacion para que me puedas ayudar....