Ingenieria Inversa

Iniciado por jolypc, 15 Agosto 2009, 22:53 PM

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

jolypc

Poseo un programa hecho en visual C++ 7.0 en dos versiones: Oficial y Demo. Sucede que me interesa convertir la versión demo en full, pero ésta no salva ni imprime o convertir la versión oficial en una full version, ya que está limitada en que están deshabilitadas otras opciones que me interesan muchisimo. Las opciones que estoy comentando pueden ser habilitadas por la introducción de un nuevo código que no tengo. He intentado con el ollyDBG; trabajando con la version oficial, entender la rutina del código para habilitar estas opciones pero no lo he logrado y ya estoy desesperado. Tambien lo he parcheado por varios lugares y lo he empeorado, por que se me deshabilitan otras opciones. he hecho esto mismo con la versión demo y logro por parcheo habilitar las opciones de salvar e imprimir, pero no me abre la ventana correspondiente para terminar de ejecutar la acción; es decir, nada sucede. Mis preguntas son las siguientes: ¿Cuál es el comando en visualC++ para que respondan los botones? ¿Como puedo saber en visual C++ si una parte del programa(Salvar e imprimir) no está incluida en la versión demo? Si pueden aconsejarme algo más para no desfalleser, se los agradecería. Ya esto me está dando dolores de cabeza.

Carloswaldo

Es muy probable que no solo se hayan desactivado esos botones sino que tampoco se haya incluido ningún código para ellos (pues si están supuestos a no ser utilizados no tiene por qué tener un código asignado).

jolypc

Esto lo recorté de la ayuda del programa, donde se puede apreciar que introduciendo un nuevo código se pueden habilitar las opciones que faltan. Las líneas de puntos las puse intencional, ya que aquí se menciona el nombre del programa.

"It is possible to change your program options by using an authcode. For example, suppose you faxed in a purchase order for adding the new option to.............................. You will receive a fax back which gives you a code that you can input to .................... to enable the feature rather than waiting for a new program to be shipped to you.

To enter a new authcode, choose Tools → Authorization Code... from the Menu bar.

Type in the code as instructed in the fax. For example, here is a typical authcode:

0JC FPJ U55 VA4 KTI HSK

As you type, the blanks are optional. After you click on the OK button, the new feature will be enabled.

You only need to enter a new authcode once, but you should keep the fax in your files in case you ever need to re-install the program."

MCKSys Argentina

Hola!

Creo que lo mejor aquí, es atacar directamente esta parte del "authcode".
Deberías usar Olly e ingresar códigos (como el del ejemplo) para ver qué hace el programa con ese código (cómo habilita las secciones "demo" del mismo).

Según parece, hay un código para cada cosa (impresión, guardar, etc). Aunque, normalmente, deberia existir un codigo "maestro" que convierta la aplicación de demo a full.

Es cuestion de usar el "ingenio inverso" (jejeje, también llamado "perverso"  ;D)

Bueno, cualquier cosa, pregunta que estamos para ayudar. También podrías poner el link del programa, para "verlo" mejor.

Saludos!

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


jolypc

Si colegas, todo eso está muy bien. pero para un novato como yo en estos temas a sido muy dificil, ya llevo varios meses trabajando en este programa y no he logrado nada.

Por favor respondanme las dos preguntas que hago en mi mensaje inicial para seguir adelante.

Como explico en mi mensaje inicial tengo dos versiones del mismo programa; es decir, si la versión demo que poseo no tiene programada las opciones de salvar e imprimir. Pienso que puedo trabajar entonces con la versión oficial que tiene su "Authorization Code" pero tiene otras opciones que enriquecen mucho más el programa deshabilitadas. Esta es la razón por la que estoy intentando crackearlo. De todos modos cualquiera de las dos versiones que logre poner a "full total" me sirve. O puede ser tambien una fusión de ambas.
Mantenganse en contacto que son los unicos que me han dado respuesta, le he escrito a Narvaja pero no me hace el minimo caso.

Saludos

LSL

mira si los ficheros de la version demo y la oficial no están ninguno comprimidos y si son del mismo tamaño, en caso de que la version demo sea mucho mas pequeño, olvidate de este que seguro le falta codigo interno para las cosas deshabilitadas.

dedicale todo el tiempo al ejecutable de la version oficial, busca por ejemplo en "search for -> All referenced text string" textos que indiquen una versión ú otra, (normalmente al programados le gusta indicar en la barra de titulos o en la ventana de acerca de... que estás trabajando con la versión tal ó cual, para ponerte los dientes largos, y ponles breakpoint "F2" en las zonas donde se encuentran los textos en su caso, a ver que decisiones toma para coger un texto ú otro, si encuentras con que valores ó direcciones de memoria compara previamente, mira si encuentras otros lugares que comparen con el mismo valor para habilitar la version full ó incompleta.

Tambien si ejecutas desde el principio mira si encuentra donde toma la clave que tienes instalada ya que en base a la clave instalada, despues decidirá y ejecutará una configuración ú otra, con lo que podras forzar el camino bueno.

Saludos.

LSL.

MCKSys Argentina

Hola!

Vuelvo a insistirte con lo del "authcode". La mejor forma de activarlo, seria hallando ese serial.

Ahora, si no lo consigues, siempre puedes parchear los saltos que trabajan con el resultado de la comprobacion.

De una u otra forma, puedes hacerlo...

Saludos!


MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


jolypc

Muchas gracias a LSL por sus consejos y a MCKSys por atenderme e insistirme con lo del authocode.
Acabo de revisar el tamaño de la versión demo respecto a la oficial y efectivamente, no están comprimidos y tienen una diferencia de 5MB(100 contra 95MB, más pequeña la versión demo), esto ya me lo sospechaba, pero les pregunto:
¿Cuál es el comando que generalmente se utiliza en visual C++ para trabajar con los botones del menú? Repito que ya intenté con EnableMenuItem y lo logré pero no me sale la ventana emergente, por ejemplo, para terminar de ejecutar la acción de guardar e imprimir.

Las otras sugerencias que me hace LSL las realizaré en breve; aunque ya he realizado esta tarea, pero siempre es bueno insistir.

Sobre lo que me comenta MCKSys de subir el programa para echarle un vistazo, para mi es dificil desde mi ubicación geografica. Tengo algunas limitaciones, "si puedo pero no debo". Si me dan otra variante que sea más pequeña de trabajar, quizas sólo el ejecutable u otra información que pueda sacarle con ollydbg; creo que sería bueno para ilustrarlos.


MCKSys Argentina

Pues la idea era que subas el EXE. Siempre y cuando las DLL que importe directamente esten en el sistema. De esa forma, por lo menos, se puede hacer un analisis "estatico" del EXE (Desde Olly o IDA).

Para capturar los eventos que procesa la ventana (incluidos los eventos del menú) pon un BP en SendMessage. Aunque desde Olly puedes sacar el WindowProc de la ventana que procesa los comandos del menu y, asi, saltar al codigo que se ejecuta con el comando de menu.

La eleccion es tuya.

Saludos!



MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


jolypc

Vaya esto del windowproc no me lo sabía, ni siquiera lo tengo. ¿Tienes algún tutorial que me guíe para trabajar con este plugin?

Me ocuparé de subirte el ejecutable pero primero se seguiré machacandome la cabeza.

Saludos