Decompilar programas (exe y dll) escritos en C, con objeto de extraer funciones

Iniciado por angelob, 7 Marzo 2015, 18:10 PM

0 Miembros y 1 Visitante están viendo este tema.

angelob

Hola, me estoy pegando con un navegador OEM que viene en el coche, y que trae IGO Primo corriendo bajo un Windows CE 5.0

Los mapas están en una tarjeta SD, junto con una rom personalizada, que sólo se carga en la unidad, cuando ésta se ha desconectado de la bateria; si no, tira de la memoria interna.

Los mapas son los mismos que los que hay por internet, pero el programa IGO valida el CID de la tarjeta contra el fichero de licencias (diferente por tarjeta) y si el fichero de licencias no coincide con el CID de la tarjeta no muestra el mapa.

Creo que el programa de navteq toolbox, que es el que se usa para realizar las actualizaciones, puede tener en su interior la construcción del fichero de licencias específico para esa SD.

He descompilado a través de una web https://retdec.com/decompilation-run/, una DLL de ese programa, la verdad es que me he quedado con la boca abierta, ha descompilado todo en código C, con todas las funciones; una de ellas obtiene el CID de la tarjeta SD, creo que del fichero device.nng.

He probado a descompilar otras DLL o el ejecutable a través de esta página ... y me da fallo por time-out. Tiene una restriccion del fichero a descomprimir de 10 megas (todos son inferiores), pero una restriccion de tiempo de 10 minutos, que es ahí en donde tengo el problema.

La idea que tengo es averiguar si hay una función que cree el fichero de licencias, dentro de estos programas, y usarla para crear uno específico.

Me podéis echar una mano?

Os dejo el programa "Subaru_Toolbox_Setup" y las DLL y el ejecutable una vez instalado. También un zip con una DLL decompilada con esa página, quería obtener algo similar. O si sabéis como obtener un archivo de licencias IGO ... pues mejor ;)

https://drive.google.com/folderview?id=0B4q-03rILQVEfmFBSG5taVFXN1h5aHpBNW5pSC15X2w3cjV4Mk5DNFNoYUp2SXI5bENXeHc&usp=sharing

gracias

MCKSys Argentina

Cita de: angelob en  7 Marzo 2015, 18:10 PM
Hola, me estoy pegando con un navegador OEM que viene en el coche, y que trae IGO Primo corriendo bajo un Windows CE 5.0

Los mapas están en una tarjeta SD, junto con una rom personalizada, que sólo se carga en la unidad, cuando ésta se ha desconectado de la bateria; si no, tira de la memoria interna.

Los mapas son los mismos que los que hay por internet, pero el programa IGO valida el CID de la tarjeta contra el fichero de licencias (diferente por tarjeta) y si el fichero de licencias no coincide con el CID de la tarjeta no muestra el mapa.

Creo que el programa de navteq toolbox, que es el que se usa para realizar las actualizaciones, puede tener en su interior la construcción del fichero de licencias específico para esa SD.

He descompilado a través de una web https://retdec.com/decompilation-run/, una DLL de ese programa, la verdad es que me he quedado con la boca abierta, ha descompilado todo en código C, con todas las funciones; una de ellas obtiene el CID de la tarjeta SD, creo que del fichero device.nng.

He probado a descompilar otras DLL o el ejecutable a través de esta página ... y me da fallo por time-out. Tiene una restriccion del fichero a descomprimir de 10 megas (todos son inferiores), pero una restriccion de tiempo de 10 minutos, que es ahí en donde tengo el problema.

La idea que tengo es averiguar si hay una función que cree el fichero de licencias, dentro de estos programas, y usarla para crear uno específico.

Me podéis echar una mano?

Os dejo el programa "Subaru_Toolbox_Setup" y las DLL y el ejecutable una vez instalado. También un zip con una DLL decompilada con esa página, quería obtener algo similar. O si sabéis como obtener un archivo de licencias IGO ... pues mejor ;)

https://drive.google.com/folderview?id=0B4q-03rILQVEfmFBSG5taVFXN1h5aHpBNW5pSC15X2w3cjV4Mk5DNFNoYUp2SXI5bENXeHc&usp=sharing

gracias

Si quieres ver el codigo C de una DLL, usa IDA con el plugin XRays. Ambos son comerciales pero hay muchos dando vueltas opr la red.

Ahora, lo mejor es que corras el proggie con Olly y mires el código. Muchas veces es mas sencillo encontrar cosas depurando el programa que analizando codigo estatico (mas aún si hay algún tipo de protección/ofuscacin de codigo).

El FAQ del subforo tienen toda la informacion que necesitas para iniciarte en este tema. Te recomiendo consultarlo.

Saludos!
MCKSys Argentina

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