elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 01:13  


Tema destacado: ¡Aprende hacking con práctica! - WarZone, el wargame de elhacker.net

+  Foro de elhacker.net
|-+  Programación
| |-+  Ingeniería Inversa (Moderadores: Shaddy, karmany)
| | |-+  Cooking ROM (Modificando imagen ROM de Windows CE 5)
0 Usuarios y 2 Visitantes están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Cooking ROM (Modificando imagen ROM de Windows CE 5)  (Leído 1,153 veces)
OrtaY

Desconectado Desconectado

Mensajes: 11


Ver Perfil
Cooking ROM (Modificando imagen ROM de Windows CE 5)
« en: 24 Noviembre 2011, 11:47 »

Hola a todos, alguien que tenga experiencia en la creación y modificación de imagenes ROM de Windows CE?

Os comento, tengo una pna que usa winCE y quisiera modificar algunos aspectos del sistema operativo, basicamente algunos valores del registro para que actualice el huso horario, pero resulta que este dispositivo tiene el sistema operativo alojado en una memoria interna que no permite la escritura en modo usuario.

El problema es que todos los cambios que hago en el registro o los archivos copiados, modificados o eliminados, solo lo están en memoria, de modo que tras apagar y encender el dispositivo todo sigue como estaba antes.

La única forma de modificar datos en el sistema, es hacerlo mediante la actualización del firmware, siguiendo unos pasos concretos y empleando unos archivos que contienen la nueva imagen del sistema operativo.

Esta ROM consta de un archivo lanzadera o bootloader de extensión .nb0 y otro que es la propia imagen del sistema, con extensión .bin

Ninguno de los dos son archivos con cabecera .PE, por lo que el único análisis al que he podido someterlos es a un HexEditor, y la verdad es que no sé como extraer los archivos de la imagen, para modificarlos y volverlos a ensamblar en la imagen.

He probado RAW_NB0_XIP_TOOL y no consigo extraer nada.

Alguien que tenga experiencia en ingenieria inversa en Win CE  que me pueda echar una mano o me indicar por donde seguir, se lo agradecería enormemente.

Si necesitan los archivos para echarles un vistazo, ahí van:

http://www.megaupload.com/?d=4MVU5ZJ7

Gracias por leerlo y ojalá puedas ayudarme :)

NOTA. Este hilo lo pongo aquí y no en dispositivos portatiles, ya que el asunto base es hacer ingenieria inversa al sistema operativo WinCE, y porque en los foros de dispositivos portatiles no hay nada al respecto. Pero que si debe ser trasladado a otro subforo, lo entiendo.
En línea
MCKSys Argentina


Desconectado Desconectado

Mensajes: 1.222


Diviérte crackeando, que para eso estamos!


Ver Perfil
Re: Cooking ROM (Modificando imagen ROM de Windows CE 5)
« Respuesta #1 en: 24 Noviembre 2011, 18:46 »

La verdad, tuve que buscar que significaba PNA...  :P

Conozco algo de Windows CE, pero esto es otra cosa...

Que tipo de micro tiene el device?

EDITADO:

Mientras Googleo, aprendo y voy sacando info:

http://android-dls.com/wiki/index.php?title=How_to_unpack_and_repack_NB0_file
« Última modificación: 24 Noviembre 2011, 19:48 por MCKSys Argentina » En línea

---------------------
MCKSys Argentina

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


Desconectado Desconectado

Mensajes: 301



Ver Perfil
Re: Cooking ROM (Modificando imagen ROM de Windows CE 5)
« Respuesta #2 en: 24 Noviembre 2011, 23:31 »

Donde  puedes conseguir info sobre este tipo de cosas es en  xda-developers

Windows CE es un windows mobile (normalemten 5.5 o 6.1) personalizado por desarolladores de dispositivos OEM chinos. Y hay veces, qeu lo personalizan tanto que se vuelve hasta molesto.



Saludos.

« Última modificación: 24 Noviembre 2011, 23:33 por _Enko » En línea


Servicio tecnico Blackberry http://www.serviciotecnicocelular.com
OrtaY

Desconectado Desconectado

Mensajes: 11


Ver Perfil
Re: Cooking ROM (Modificando imagen ROM de Windows CE 5)
« Respuesta #3 en: 28 Noviembre 2011, 01:19 »

Gracias por vuestras aportaciones, os comento mi problema:

Os cuento mis avances...

existen varios archivos de imagen en WinCE

unos tienen extensión nb0, y son ejecutados por el sistema, una especie de ejecutables camuflados o empacados

otros tienen extension bin y son mas de lo mismo, con la diferencia de que no son ejecutados directamente, sino cargados como una imagen, algo asi como las imagenes iso de un CD en una unidad virtual.


Normalmente un archivo .bin es un contenedor de archivos, los cuales pueden ser extraidos usando las herramientas adecuadas, igual que lo hariamos de un .rar con winrar. Hasta aqui todo correcto, el problema viene cuando no puedo extraer los archivos de mi fichero .bin (el que he adjuntado el enlace de descarga en el primer post)

Encontre unas utilidades que os recomiendo para analizar este tipo de ficheros, llamadas NKBINTOOLS y esto es lo que hacen:

viewbin.exe - muestra el contenido del NK.BIN
cvrtbin.exe - convierte el NK.BIN desde y a otros formatos como NK.nb0
binmod.exe - es capaz de reemplazar archivos dentro del NK.BIN
dumprom.exe - extrae todos los archivos del NK.nb0

El problema es que antes de extraer los ficheros del .bin con dumprom, es necesario convertir este fichero a uno .nb0, y a su vez para esto es necesario saber la direccion de inicio en memoria y la longitud del fichero, y cuando intento averiguar esto con viewbin.exe me lanza el siguiente error:

ViewBin... GP311_OS.bin
Missing initial signature (BOOOFF). Not a BIN file

Entonces es cuando se me ha encendido la lamparita.

He abierto el fichero GP311_OS.bin (mi fichero problema) con un editor hexagesimal, y me encuentro que el fichero en lugar de tener una signatura inicial BOOOFF tiene otra NOOOFF, pero curiosamente a continuacion vienen listados una serie de fichero tambien de extension .bin (tinynk.bin, nk.bin, drivers.bin y chain.bin) y un poco mas adelante me encuentrio ohhhh sorpresa, una signatura BOOOFF, y enconces fue cuando se me ocurrió que quizá mi arvhivo .bin fuese a su vez una imagen que contiene ficheros .bin, que a su vez contienen otros archivos, si, un poco enrevesado, pero peores cosas hemos visto, no?
 
Se me da por buscar más signaturas NOOOFF dentro del archivo y me encuentro, que casualidad, 4 signaturas en total, el mismo número de archivos listados .bin, asi que como veo que la información no parece codificada, se me ocurre empezar por lo mas simple, es decir, abrir el archivo GP311_OS.bin, eliminar su parte inicial hasta llegar a la primera cabecera NOOOFF e ir cortando el archivo en cuatro partes, denominadas  tinynk.bin, nk.bin, drivers.bin y chain.bin, cada parte consta de los bytes desde una cabecera NOOOFF hasta la siguiente.

La prueba de fuego era emplear las NKINTOOLS con estos ficheros y la verdad es que me ha llevado una enorme y agradable sorpresa cuando viewbin.exe me ha dado la información de mis nuevos archivos .bin sin lanzarme errores, luego cvrtbin.exe me ha convertido los archivos .bin a .nb0, y finalmente dumprom.exe me ha extraido todo el contenido completo de estos archivos!!!

Lo cierto es que este proyecto lo tenía parado desde hace dos años que lo intenté y lo di por imposible y ahora al retomarlo y conseguir extraer toda la info de la ROM, me he encontrado muy satisfecho, aunque aun me queda lograr el fin de todo esto, que es:

primero, modificar los ficheros necesarios, y hacer que estos a su vez modifiquen el registro de WinCE al ser cargados por el sistema.

segundo, volver a empacar los ficheros en imagenes .nb0, convertirlos nuevamente a .bin y finalmente aprender a ensamblarlos nuevamente en una imagen .bin concatenada de nombre GP311_OS.BIN, e incluso poder a añadir nuevos ficheros a esta imagen, como archivos de configuración y nuevas aplicaciones del sistema

tercero, modificar el bootloader (GP311_BL.NB0) para que no me lance error al comprobar el checksum  antes de cargar el nuevo fichero GP311_OS.BIN.

El mayor problema creo que reside en este ultimo punto, ya que no conozco debbuger que permitan analizar ficheros de WinCE.

Bueno, y hasta aqui mis avances, que me temo que por cuestiones de agenda tendre que dejar apartados temporalmente, a ver si cuando tenga un ratillo continuo con esto y quien sabe, si llego a algo mas, hacer un tutorial al respecto, ya que la informacion al respecto es muy escasa.

Si quereis conocer mas de mi anterior proyecto en WinCE escrito a mediados de 2009, y de como sacarle partido a un GPS de 60 euros y convertirlo en un "bicharraco", os dejo un enlace a continuación, aunque esto si es más propio de la sección de GPS, :)

http://www.forocoches.com/foro/showthread.php?t=1318592


Saludos, Ortay



 











En línea
.:UND3R:.


Desconectado Desconectado

Mensajes: 1.960


Ingeniería inversa


Ver Perfil WWW
Re: Cooking ROM (Modificando imagen ROM de Windows CE 5)
« Respuesta #4 en: 28 Noviembre 2011, 03:38 »

Gracias por vuestras aportaciones, os comento mi problema:

Os cuento mis avances...

existen varios archivos de imagen en WinCE

unos tienen extensión nb0, y son ejecutados por el sistema, una especie de ejecutables camuflados o empacados

otros tienen extension bin y son mas de lo mismo, con la diferencia de que no son ejecutados directamente, sino cargados como una imagen, algo asi como las imagenes iso de un CD en una unidad virtual.


Normalmente un archivo .bin es un contenedor de archivos, los cuales pueden ser extraidos usando las herramientas adecuadas, igual que lo hariamos de un .rar con winrar. Hasta aqui todo correcto, el problema viene cuando no puedo extraer los archivos de mi fichero .bin (el que he adjuntado el enlace de descarga en el primer post)

Encontre unas utilidades que os recomiendo para analizar este tipo de ficheros, llamadas NKBINTOOLS y esto es lo que hacen:

viewbin.exe - muestra el contenido del NK.BIN
cvrtbin.exe - convierte el NK.BIN desde y a otros formatos como NK.nb0
binmod.exe - es capaz de reemplazar archivos dentro del NK.BIN
dumprom.exe - extrae todos los archivos del NK.nb0

El problema es que antes de extraer los ficheros del .bin con dumprom, es necesario convertir este fichero a uno .nb0, y a su vez para esto es necesario saber la direccion de inicio en memoria y la longitud del fichero, y cuando intento averiguar esto con viewbin.exe me lanza el siguiente error:

ViewBin... GP311_OS.bin
Missing initial signature (BOOOFF). Not a BIN file

Entonces es cuando se me ha encendido la lamparita.

He abierto el fichero GP311_OS.bin (mi fichero problema) con un editor hexagesimal, y me encuentro que el fichero en lugar de tener una signatura inicial BOOOFF tiene otra NOOOFF, pero curiosamente a continuacion vienen listados una serie de fichero tambien de extension .bin (tinynk.bin, nk.bin, drivers.bin y chain.bin) y un poco mas adelante me encuentrio ohhhh sorpresa, una signatura BOOOFF, y enconces fue cuando se me ocurrió que quizá mi arvhivo .bin fuese a su vez una imagen que contiene ficheros .bin, que a su vez contienen otros archivos, si, un poco enrevesado, pero peores cosas hemos visto, no?
 
Se me da por buscar más signaturas NOOOFF dentro del archivo y me encuentro, que casualidad, 4 signaturas en total, el mismo número de archivos listados .bin, asi que como veo que la información no parece codificada, se me ocurre empezar por lo mas simple, es decir, abrir el archivo GP311_OS.bin, eliminar su parte inicial hasta llegar a la primera cabecera NOOOFF e ir cortando el archivo en cuatro partes, denominadas  tinynk.bin, nk.bin, drivers.bin y chain.bin, cada parte consta de los bytes desde una cabecera NOOOFF hasta la siguiente.

La prueba de fuego era emplear las NKINTOOLS con estos ficheros y la verdad es que me ha llevado una enorme y agradable sorpresa cuando viewbin.exe me ha dado la información de mis nuevos archivos .bin sin lanzarme errores, luego cvrtbin.exe me ha convertido los archivos .bin a .nb0, y finalmente dumprom.exe me ha extraido todo el contenido completo de estos archivos!!!

Lo cierto es que este proyecto lo tenía parado desde hace dos años que lo intenté y lo di por imposible y ahora al retomarlo y conseguir extraer toda la info de la ROM, me he encontrado muy satisfecho, aunque aun me queda lograr el fin de todo esto, que es:

primero, modificar los ficheros necesarios, y hacer que estos a su vez modifiquen el registro de WinCE al ser cargados por el sistema.

segundo, volver a empacar los ficheros en imagenes .nb0, convertirlos nuevamente a .bin y finalmente aprender a ensamblarlos nuevamente en una imagen .bin concatenada de nombre GP311_OS.BIN, e incluso poder a añadir nuevos ficheros a esta imagen, como archivos de configuración y nuevas aplicaciones del sistema

tercero, modificar el bootloader (GP311_BL.NB0) para que no me lance error al comprobar el checksum  antes de cargar el nuevo fichero GP311_OS.BIN.

El mayor problema creo que reside en este ultimo punto, ya que no conozco debbuger que permitan analizar ficheros de WinCE.

Bueno, y hasta aqui mis avances, que me temo que por cuestiones de agenda tendre que dejar apartados temporalmente, a ver si cuando tenga un ratillo continuo con esto y quien sabe, si llego a algo mas, hacer un tutorial al respecto, ya que la informacion al respecto es muy escasa.

Si quereis conocer mas de mi anterior proyecto en WinCE escrito a mediados de 2009, y de como sacarle partido a un GPS de 60 euros y convertirlo en un "bicharraco", os dejo un enlace a continuación, aunque esto si es más propio de la sección de GPS, :)

http://www.forocoches.com/foro/showthread.php?t=1318592


Saludos, Ortay



 













Desconozco el funcionamiento de WinCE. Felicitaciones, obviamente es un gran avance, debes ir de poco en poco tu analogía es excelente buena forma de solucionar la extracción del .bin creo que lograrás tu objetivo  ;-)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Modificando un SMF
Desarrollo Web
marian0 3 346 Último mensaje 13 Marzo 2006, 13:36
por JuszR
Duda modificando version de Windows
Windows
Athagan 2 324 Último mensaje 9 Abril 2006, 09:20
por Hexios
Modificando un portable
Software
N@5h 0 438 Último mensaje 6 Junio 2008, 18:45
por N@5h
Modificando el arranque y autorun de los HDD en Windows??
Hacking Básico
Hole_System 1 455 Último mensaje 25 Julio 2008, 12:03
por aaronduran2
Modificando Crypter
Programación Visual Basic
mr_marley 8 3,842 Último mensaje 19 Octubre 2009, 21:15
por skapunky
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines