arm - sistemas - Invertir la ingeniería de un firmware: ¿qué ocurre con cada cuarto byte?
sistemas operativos pdf 2017 (2)
Así que decidí tomar mis herramientas y analizar el firmware de un enrutador. Fue bastante bien hasta el punto en que tuve que buscar segmentos manualmente. No te molestaría con eso y realmente no quiero preguntar sobre piratear cualquier cosa o hacer un favor para mí. Hay un patrón que estoy seguro que alguien podría explicarme. Mirando el hexdump, todo lo que veo es esto:
Hay cadenas que rompen el patrón pero bajan casi hasta el final del archivo.
¿Qué demonios puede causar este patrón?
(si alguien está dispuesto a ayudar pero necesita más información: VxWorks 5.5.1 / probablemente CPU ARM-9E)
Eso solo se debe a cómo se mapean los códigos op de ARM y realmente me ayuda a "echar un vistazo" a un volcado para ver si su código ARM.
Sugeriría que revises parte del Manual de Arquitectura ARM para ver cómo se generan los códigos operativos. particularmente condicionales. la E se crea cuando siempre quieres que suceda algo
es un brazo, ve a la documentación del brazo verás que para las instrucciones de brazo de 32 bits (sin pulgar) los primeros cuatro bits son el código de condición. El código 0b1110 es "SIEMPRE" la mayor parte del tiempo en que no se ejecuta condicional, por lo que la mayoría de las instrucciones de armado comienzan con 0xE. hace que sea muy fácil elegir un brazo binario. las instrucciones de pulgar de 16 bits también tienen un patrón similar, pero por diferentes razones, entonces si agregas en thumb2 cambia eso ...