Pregunta:
Actualmente estoy invirtiendo el firmware de algún dispositivo. Sin ningún problema, pude llegar a lo más profundo de su núcleo y extraer el sistema de archivos. Ahora estaba tratando de revertir algunas de las aplicaciones especiales en este dispositivo. Después de verificar el formato del archivo, noté lo siguiente: Es un MSB (big-endian) ELF de 32 bits en la plataforma Ubicom32.
Después de buscar en Google, verificar Woodmann y jugar un poco con él, no pude encontrar demasiada información sobre este formato, excepto el hecho de que "existe".
¿Existen herramientas (o complementos) que manejen este formato de archivo? ¿Puedo considerar esto como ARM o MIPS? Encontré OpenWRT – Ubicom32 Kernel pero ninguna cadena de herramientas.
Respuesta:
Ubicom32 es una arquitectura propietaria, no relacionada en absoluto con ARM o MIPS (aparte del hecho de que es RISC… bueno, más o menos). IIRC fue diseñado específicamente para redes y aplicaciones de transmisión multimedia, por lo que es una arquitectura un poco extraña. Fue desarrollado por Ubicom, pero fueron comprados por Qualcomm.
Existen cadenas de herramientas de Linux para ello, el mejor lugar para obtenerlas que he encontrado es de las versiones GPL del proveedor. Si no hay una versión GPL para su dispositivo en particular, busque otros dispositivos basados en Ubicom de ese proveedor (u otros proveedores) que tengan versiones GPL.
Tenga en cuenta que solo tener una cadena de herramientas probablemente no sea suficiente para revertir el código, también necesitará una referencia de ensamblaje para comprender las instrucciones. AFAIK Ubicom nunca lanzó esto públicamente, pero algunas búsquedas creativas en Google me dieron algunas referencias en su mayoría completas hace un tiempo. Voy a ver si puedo localizar los enlaces.
ACTUALIZACIÓN : Encontré la hoja de datos para las CPU Ubicom de la serie IP5000, que incluye una referencia del conjunto de instrucciones: http://www.texim-europe.com/getfile.aspx?id=68544