Eu tenho uma D-Link DCS-931L câmera IP e começou a perder conexão wi-fi regularmente. Para depurar o problema, tentei fazer login, mas qualquer acesso remoto é proibido (exceto interface da web, que é inútil no meu caso). Então eu decidi brincar com o firmware da câmera. Foi relativamente fácil visualizar e extrair o conteúdo do firmware usando a binwalk:
$ binwalk -t dcs931l_v107_b1.bin
DECIMAL HEXADECIMAL DESCRIPTION
--------------------------------------------------------------------------------
0 0x0 uImage header, header size: 64 bytes, header CRC:
0x87952F3D, created: Wed Feb 4 17:09:26 2015,
image size: 128432 bytes, Data Address:
0x80200000, Entry Point: 0x80200000, data CRC:
0x22AE437C, OS: Linux, CPU: MIPS, image type:
Standalone Program, compression type: none,
image name: "SPI Flash Image"
99296 0x183E0 U-Boot version string, "U-Boot 1.1.3"
115616 0x1C3A0 HTML document header
115969 0x1C501 HTML document footer
115972 0x1C504 HTML document header
116171 0x1C5CB HTML document footer
116332 0x1C66C HTML document header
117032 0x1C928 HTML document footer
327680 0x50000 uImage header, header size: 64 bytes, header CRC:
0x99A49EC1, created: Wed Feb 4 17:09:20 2015,
image size: 7383128 bytes, Data Address:
0x80000000, Entry Point: 0x8038D000, data CRC:
0x6FA27193, OS: Linux, CPU: MIPS, image type: OS
Kernel Image, compression type: lzma, image
name: "Linux Kernel Image"
327744 0x50040 LZMA compressed data, properties: 0x5D,
dictionary size: 33554432 bytes, uncompressed
size: 9988726 bytes
O chunk "dados comprimidos LZMA" contém o sistema atual e é possível habilitar o telnet e fazer outras modificações.
Mas a binwalk parece ser inútil para colocar o sistema novamente em um arquivo de firmware adequado para fazer o download para a câmera. Alguém pode explicar ou apontar para um recurso explicando como criar esse arquivo de firmware, por favor?
Tags boot webcam firmware embedded-linux