Ferreteria Plus crack serial full GDS - Ingenieria inversa en proceso...

Iniciado por CITROMAN, 15 Noviembre 2009, 21:30 PM

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

CITROMAN

Inspirado un poco en este post me decido a iniciarme en esto llamado "ingenieria inversa"... soy programador por hobby asi que aca habra mucha prueba y error... y mucho oido para recibir consejos!

Ferreteria Plus V5.80
Archivo: instala_ferreteria_plus.exe (10,8 MB)
programas-gestion.com.ar/ferreteria/instala_ferreteria_plus.exe
(md5 checksum:4A52DA92 - BC4E3F98 - A807F5FE - 66DCE14F)

Mi estudio se basa en esa version, probablemente sea actualizada en la pagina oficial asi que pueden bajarse la version exacta desde estos lugares:
RS: http://rapidshare.com/files/307829659/instalaFPv5.80.exe
MU: http://www.megaupload.com/?d=TOOGHLW9
MF: http://www.mediafire.com/?znmz0nuz255
(obviamente mismo checksum)

Software que voy bajando, no se si los usaré a todos...

Delphi 7 Second Edition (en ingles, es una version full muy buena) (42 MB)
http://rapidshare.com/files/83259453/Delphi.7.Second.Edition.v7.2.exe

Absolute Database v.6.05 Personal Edition para Delphi 7 (8.006 Mb)
http://www.componentace.com/data/distr/absolute_d7_605.zip
(Si hay problemas con la instalacion miren el readme que trae que es muy claro.)

OllyDbg v1.10 (1.27MB)
http://www.ollydbg.de/odbg110.zip

Un-telock 0.99 (28KB) (Unpacker, para desempacar los exe)
http://rapidshare.com/files/151160393/Un-telock-0.99.rar.html

DeDe v3.50.04.1635 Delphi7 Forced (756KB)
http://www.4shared.com/file/101091918/c854380f/DeDe_v350041635_Delphi7_Forced_PassZapper.html



Instalo Ferreteria Plus V5.80
Abro el programa para ver las limitaciones y seguridad implementada y me encuentro con:
1- Tiene 100 usos disponibles (ver donde guarda el numero de aperturas restantes, ya hice un bat para eso)
2- Me ofrece compararlo, para eso me muestra una licencia generada la cual deberia corresponderse con algun codigo que pasen ellos para registrarlo, de salen 2 opciones, la primera me lleva a una web en donde precarga los datos en un formulario y ais solicitar el serial... la segunda opcion es la de ingresar la licencia obtenida. Si coloco un serial erroneo abre un navegador integrado que me lleva a la misma web, si no tiene conexion a internet me muestra un mensaje de error "Error: No se encontro el formulario". (debere abrirlo con un debugger...). Intuyo que la clave de producto la genera teniendo en cuenta algunos datos de la maquina en donde se instaló y la fecha, digo esto porque lo instale mas de una vez y fue siempre cambiante...
3- Elijo la opcion "Entrar" para empezar a usar el programa. Aca veo que apenas abro el programa se cambia la fecha de modificacion del archivo "C:\Ferreteria Plus\tablas\CONFIG.ABS" (este archivo seguramente tenga mucho que ver en mis planes)
4- Tal cual pasaba en versiones viejas, el boton de remitos esta desactivado en la demo
5- En la impresion de comprobantes aparece la leyenda "VERSION DE PRUEBA"

Cargo una factura de venta y veo que se modifica el archivo "C:\Ferreteria Plus\tablas\TABLAS.ABS"
En este momento me decido primero a abrir las bases de dato e investigarlas un poco previo a meterme con los exe...

Abro el CONFIG.ABS y me pide una contraseña "Database Autentication", ya vere despues que encuentro en internet para sacarle la contraseña...
Abro TABLAS.ABS para investigar un poco, no tiene contraseña... muy bien!
Ambas tablas ya me las abre con el "Absolute Database" previamente instalado.

Yo se que cualquiera con experiencia iria directamente a decompilar el programa... pero yo le tengo ganas al CONFIG.ABS y como tiene contraseña me parece que es aun mas importante de lo que parece... sino para que perder tiempo con la contraseña?

Me olvide de aclarar, el programa lo compró un amigo y tengo el serial que se corresponde con su "clave de producto" instalada... esto lo aclaro porque mi intencion no es la de desbloquear el programa para usarlo sino que fue el que tenia mas a mano... ya vere si mas adelante me sirve ese serial para hacer mas facil mis dias...


Base de datos TABLAS.ABS
tbarticulos: me llama la atencion la propiedad maxvalue=500 del campo id... por las dudas lo voy a dejar en blanco, no sea cosa que ese valor sea el que limite los articulos ;)
Sobre "tbarticulos" hago click derecho y elijo "Restructure table", me voy a la fila del campo id y borro el valor de 500...

Voy a revisar todas las tablas, una por una a ver que encuentro...
tbconfig: tiene un nombre interesante, hay muchos parametros que tal vez no se puedan modificar desde el programa y desde aca si, por ejemplo el simbolo de la moneda... (me queda en el tintero ver que pasa si cambio el valor de "ModulosRegistrados", vale la pena probar)

tbconfigGDS: lindo nombre tambien, me llama la atencion que hay valores de campos que tienen True con mayusculas y true en minusculas... me hace pensar que alguno fue cambiado a mano aparentemente, no se.

tbConfigGeneral: tambien muchos parametros...
Tal vez estos campos sirvan para algo si se modifican a mano.

tbReservas: me pregunto si el programa tendra otras funciones deshabilitadas... ahora recuerdo que me comentaron que el programa es unico y le cambian algunas opciones y el nombre para adaptarlo a peluquerias, gimasios, etc... a lo mejor si descubroimos algo sirva para todos los programas como ya ocurrio antes cuando hicieron un crack que duro unos dias...

tbUsuarios: aca estan los parametros de permisos por usuario... me llama mucho la atencion que las contraseñas ni siquiera minimamente hayan pasado por un MD5... se ven a simple vista!


Guardo la db y abro el programa...
Arranca bien... hasta ahora el limite de 100 usos no me preocupa y ademas no tengo la contraseña para abrir CONFIG.ABS.
Hago click en entrar y me voy a importar articulos... importo 2000 (me muestra un mensaje diciendo que el demo tiene limites pero no hace mas que eso y los importa)
Agrego un articulo manualmente, me avisa que tengo un limite de 240 articulos y se cierra el programa sin grabar ese ultimo articulo...
EL limite en la db era de 500 y aca me muestra 240.. raro... voy a hacer la prueba de ponerle un numero en vez de que quede el cmpo vacio... pruebo con 20.000... (probe y hace lo mismo, el numero en la db haria una segunda comprobacion en caso que falle la primera)...

Esto me obliga a abrir CONFIG.ABS....
Por el momento y para que no se frene al llegar a los 100 usos, lo que hago es volver a copiar el config.abs original que es quien lleva la cuenta de los usos, me arme un bat con lo siguiente:

@echo off
echo Copiando...
copy "config.abs" "C:\Ferreteria Plus\tablas"


Voy a investigar como abrir esa db con contraseña... si a alguien se le ocurre algo bienvenidas sean las ideas....
Este post lo voy a ir completando a medida que vaya teniendo progresos o si recibo ideas para probar...

Todavia me falta usar algun monitor de sistema para ver si hace consultas al registro..
Mas adelante me metere con el debugger...

----------------------------------------------
Actualizacion
Despues de buscar varias horas, doy con algo muy interesante llamado "ABS Pass Cracker"
http://zapper9.blogspot.com/2009/06/abs-pass-cracker.html
Bajar:
http://www.4shared.com/file/114986084/6db9b1a/ABSPassCracker_v30b_PassZapper.html (292 KB) (Contraseña para el rar: Zapper)
Es un "probador" de contraseñas... lo voy a dejar andando un rato a ver si tengo suerte... sino tendre que abrir el exe definitivamente para ver donde esconde la contraseña a la base de datos...

-----------------------------------------------

Actualizacion
Mientras el "ABS Pass Cracker" hace su intento... Arranco el DeDe y empiezo a revisar ferreteria.exe...
Aclaracion, al exe ya lo habia desempacado con el "Un-telock"...

-----------------------------------------------

Actualizacion
El programita para la contraseña funciona a la perfeccion, afortunadamente la contraseña es alfanumerica de 4 digitos... en un ratito (7 minutos) ya estaba en pantalla. (Si con esta ayuda no la sacan...)



Abro la db CONFIG.ABS y encuentro:
Tabla: tbLicencias

Campo.. / .. Valor
Fecha   14/11/2009
Reg   8697AB13
CPU                 Intel(R) Pentium(R) 4 CPU 3.00GHz
Windows   Microsoft Windows XP
HD   488B-1860 111,78 Gb.
Memoria   1.022 Mb.
Lic   
Usage   27EF955BBB3C7E24
Spc   

Veo similitudes con el "codigo de producto" que me muestra "8697AB13892"... supongo que los campos "Lic" y "Spc" tienen algo que ver en el registro del programa...

Bueno, no me sirve de mucho por el momento pero me saque las ganas de abrirla... Menos mal que ya habia empezado a mirar el manual del OLLY!

---------------------------------------------------

Actualizacion15-9
Agregue 3 mirrors y el md5 cheksum para comprobar la version del instalador...
Estoy mirando un tute de tena que hizo para una version antigua del programa...

----------------------------------------------------

Actualizacion 16/11/09
Ya estoy con el exe...
Lo desempaco con el untelock
Noto que al ejecutar el exe crea un bat que lo borra... jeje

Ferreteria.bat
:1
Erase "C:\Ferreteria Plus\Ferreteria.exe"
If exist "C:\Ferreteria Plus\Ferreteria.exe" Goto 1
Erase "C:\Ferreteria Plus\Ferreteria.bat"


antidump=1   yo=0

... Vuelvo al untelock....

busco ? CreateFileA (para meter un bp y que no cree el exe)
agrego un bp y veremos...

----------------------------------------------------

Si a alguien se le ocurre algo, bienvenidas sean esas ideas!
Continuará...

MCKSys Argentina

#1
Hola!

Pues, luego de leer lo que has puesto, debo decirte que tu enfoque de la Ingenieria Inversa, no está del todo correcto (ojo!, al menos para mi).

El acercamiento que has planteado, es el de un programador intentando "ver" las protecciones del programa.

Como consejo, aprende primero a utilizar el debugger y las herramientas que "vienen" con el (RDG, PEiD, LordPe, ImpRec, etc,etc). Te recomiendo el curso "OllyDbg desde cero" de Ricardo Narvaja.

Desde el punto de vista que has empezado, puede ser que logres saltear la proteccion, pero normalmente, NO es asi (aunque debo admitir, que saber programar, ayuda MUCHO en este "arte"  ;))

Aunque sólo es una opinión... :)

Saludos!

PD: Cualquier pregunta, ya sabes, estamos aqui... ;D
PD2: Lo voy a descargar para darle una miradita ;)


MCKSys Argentina

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


CITROMAN

Hola MCKSys, gracias por responder... estas en lo cierto, pero voy a atacar por los dos frentes. Mientras reviso el exe estoy intentando abrir la base de datos que es lo que mas facil me resulta hsta tanto aprenda varios trucos mas...

Por eso decia en el post "Yo se que cualquiera con experiencia iria directamente a decompilar el programa... " jeje...

Lo cierto es que estoy hace unos dias con el curso ese que citas de Narvaja, es excelente... pero lo voy mirando de a ratos cuado tengo tiempo.

Nuevamente gracias y quedate traquilo que voy a estar haciendo preguntas muy pronto...

CITROMAN

Bueno, actualice el post...
Abri la db, no hay mucho para ver... tengo que seguir con el exe!
:huh:

jdc

Como ya tienes el pass del archivo fíjate en la aplicación que tiene tú amigo en ese mismo archivo ;)

CITROMAN

Ya estoy con el exe...
Lo desempaco con el untelock
Noto que al ejecutar el exe crea un bat que lo borra... jeje
Ferreteria.bat
:1
Erase "C:\Ferreteria Plus\Ferreteria.exe"
If exist "C:\Ferreteria Plus\Ferreteria.exe" Goto 1
Erase "C:\Ferreteria Plus\Ferreteria.bat"


antidump=1 vs yo=0
...Vuelvo al untelock....

busco ? CreateFileA y lo encuentro... goto > 7C801A28
agrego un bp y veremos...

MCKSys Argentina

Hola!

Te cuento un poco del EXE. Está empacado con tElock v0.98. e conseguido desempacarlo exitosamente, pero el EXE "detecta" el desempacado, por ello estoy haciéndole modificaciones.

Pero, bueno, la mejor noticia, es que he conseguido hacerlo correr libremente, al empacado y al desempacado.

Hay 2 lugares, en el EXE, donde se automodifica el código. La 1era parte (D2A606) se realiza cuando se intenta ingresar el serial de registración. Que por cierto, PARECE que la primera palabra "correcta" es AK47GDLL (me parece que al programador le gusta el Counter Strike ;))
La 2da parte (D2A946), es cuando le das al botón de Ingresar al programa. Aqui es donde el programa detecta el desempacado. Utilizando esta "desencriptacion" de código, consigue "ver" que ha sido desempacado y genera una excepcion quetermina el proceso.

Usando el depurador, se pueden tener las 2 versiones del programa corriendo (empacada y liberada) y asi, ver dónde radica la diferencia (que es sólo en 2 bytes ;))

Bueno, hasta ahora eso tengo (quizas un poco mas, pero no quiero decir nada hasta no estar seguro).

Por lo pronto, la idea es: utilizar el proceso de desencriptacion del código usado para ingresar al programa, para poder determinar una clave de registro correcta. Lo cual es lógico, pues la rutina de desencriptacion de código es la misma en ambos casos.

Bueno, eso es todo por ahora.

Sigo mirando y si hay noticias, les cuento  :P

Saludos!



MCKSys Argentina

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



MCKSys Argentina

Nooo, que va..

Pero ya tengo el desempacado funcionando...

Algo es algo :)

Saludos!


MCKSys Argentina

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


CITROMAN

Que grande MCKSys, ya te me adelantaste!... pero te sigo los pasos de cerca!...

Recien me baje una version "supuestamente" full... voy a ver si saco alguna idea de ahi, por lo pronto lo unico que note es que usa un bat para que no se terminen los 99 usos.. imagino que lo hizo un newbie como yo!... (edit, no sirve de nada)

Tena si sos la misma persona de la lista de crackslatinos te mande un mail con unas preguntas respecto de un tute tuyo...


Agregando un bp en 00D2A606 y en 00D2A946 no me detecta el dumpeado...
cuando decis "PARECE que la primera palabra "correcta" es..." a que te referis, a mi me pide una sola palabra... ahh, hace unos dias no se bien donde meti los dedos, me aparecio la ventana de acceso pidiendome el user/pass ahi si que son 2 palabras... no se donde tengo ese modificado.