Pregunta:
Apple proporciona actualizaciones de firmware para sus productos Airport a través de 'Airport Utility'. Los archivos de firmware se pueden descargar con la ayuda de ~/Library/Application\ Support/Apple/AirPort/Firmware/version.xml que contiene todos los productos y sus versiones de firmware disponibles:
...
<dict>
<key>location</key>
<string>http://apsu.apple.com/data/115/041-9815.20130814.1Rver/7.6.4.basebinary</string>
<key>newest</key>
<true/>
<key>productID</key>
<string>115</string>
<key>sizeInBytes</key>
<integer>5674968</integer>
<key>sourceVersion</key>
<string>76400.10</string>
<key>version</key>
<string>7.6.4</string>
</dict>
<dict>
<key>location</key>
<string>http://apsu.apple.com/data/115/041-9696.20130207.Ch5g6/7.6.3.basebinary</string>
<key>productID</key>
<string>115</string>
<key>sizeInBytes</key>
<integer>5674344</integer>
<key>sourceVersion</key>
<string>76300.7</string>
<key>version</key>
<string>7.6.3</string>
</dict>
<dict>
<key>location</key>
<string>http://apsu.apple.com/data/115/041-0311.20130207.aaWs/7.6.2.basebinary</string>
<key>productID</key>
<string>115</string>
<key>sizeInBytes</key>
<integer>5627396</integer>
<key>sourceVersion</key>
<string>76200.16</string>
<key>version</key>
<string>7.6.2</string>
</dict>
...
Para Airport Express (modelo A1392, productID 115, ver WikiDevi , Teardown by Rogue Amoeba ) hay 3 versiones de firmware: 7.6.2, 7.6.3 y 7.6.4 (actual).
Descargué las 3 versiones y usé binwalk (v1.2.2-1) en ellas. Parecen estar encriptados:
$ binwalk -H 7.6.3.basebinary
DECIMAL HEX HEURISTIC ANALYSIS
-------------------------------------------------------------------------------------------------------------------
0 0x0 High entropy data, best guess: encrypted, size: 5673944, 0 low entropy blocks
El examen de diferentes archivos de firmware reveló su estructura común.
Desplazamiento 0-D: cadena estática APPLE-FIRMWARE
Compensación E: hexágono estático 00
Compensación F: versión de formato de firmware (?) (8 bits con signo) hexadecimal 2D => formato 45 (los firmwares 7.5.x tienen la versión de formato 44, los firmwares 7.7.x tienen la versión de formato 46)
Compensación 10-12: hexadecimal estático 00 00 00
Compensación 13: ID de producto (8 bits con signo) hexadecimal 73 => ID de producto 115
Compensación 14: versión principal de firmware (8 bits con firma) hex 07 => versión principal 7 (también conocida como 7.x)
Compensación 15: versión secundaria de firmware (8 bits firmados) hex 63 => versión secundaria 63 (también conocida como x.63)
Compensación 16-1F: ¿suma de control o tamaño para la siguiente parte?
Desplazamiento 20-2D: cadena estática APPLE-FIRMWARE
Desplazamiento 2E: hexágono estático 00
Compensación 2F: versión de formato de firmware (?) (8 bits con signo) hexadecimal 2D => formato 45 (los firmwares 7.5.x tienen la versión de formato 44, los firmwares 7.7.x tienen la versión de formato 46)
Compensación 30-32: hexadecimal estático 00 00 00
Compensación 33: ID de producto (8 bits con signo) hexadecimal 73 => ID de producto 115
Compensación 34: versión principal de firmware (8 bits con firma) hex 07 => versión principal 7 (también conocida como 7.x)
Compensación 35: versión secundaria de firmware (8 bits firmados) hex 63 => versión secundaria 63 (también conocida como x.63)
Compensación 36-3F: ¿suma de control o tamaño para la siguiente parte?
Compensación 40-12F: ¿código de arranque? 344FE72ADE3CC2202D6A221A3B67B6075B0F13CA37F5DCCAE5ED626BAE0B4655E618766D703B5190CCD578BCF06D6C9ECD97265B962F49478BE1E9FDE8160E5CCDC09B0C975A3D271D988791258ACC6E679A1556F01C2100DDD0B35E8DA388119C35AC8765DB5DC6AAD6E3D7232D47B4EFA97B32AEF6FF77EDB43946103187342DF68BE88D6B005DAF7CC212777C4FA7FEFD3FD299088EE73EC6FAB1596A92835E4E2450750D9AB5F86780464E341CBFE61E7B8F224285CB3D47D3891AD614B1ABD04DB3DACE7622B22355752F29FF7C5492635F9B99F966759DA4070F23B1D20E197F72BDAFA2B36B567C8E756147A2
¿Tienes alguna idea sobre cómo seguir adelante?
¿Qué tipo de cifrado se podría haber utilizado? Apple parece usar AES para el firmware de Iphone y AppleTV.
Respuesta:
Si realmente está encriptado, deberá desarmar el dispositivo, levantar la ROM, leerla y aplicar ingeniería inversa al código. Hay algunos trabajos previos que se realizaron en el área, ver aquí El propietario de este sitio está manteniendo shairport , puede ser útil.
Existe una pequeña posibilidad de que el código cifrado se descifre antes de enviar la actualización al dispositivo (personalmente, no lo creo), por lo que sería bueno investigar la utilidad que realmente lee el archivo de actualización y actualiza el Airpot Express.