Foro de elhacker.net

Programación => Ingeniería Inversa => Mensaje iniciado por: angelob en 7 Marzo 2015, 18:10 pm



Título: Decompilar programas (exe y dll) escritos en C, con objeto de extraer funciones
Publicado por: 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/ (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 (https://drive.google.com/folderview?id=0B4q-03rILQVEfmFBSG5taVFXN1h5aHpBNW5pSC15X2w3cjV4Mk5DNFNoYUp2SXI5bENXeHc&usp=sharing)

gracias


Título: Re: Decompilar programas (exe y dll) escritos en C, con objeto de extraer funciones
Publicado por: MCKSys Argentina en 7 Marzo 2015, 23:27 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/ (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 (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 (https://foro.elhacker.net/ingenieria_inversa/faq_iquesteres_nuevo_aprende_ingenieria_inversa_desde_cero-t345798.0.html) del subforo tienen toda la informacion que necesitas para iniciarte en este tema. Te recomiendo consultarlo.

Saludos!