У меня есть IP-камера D-Link DCS-931L, и она начала регулярно терять соединение Wi-Fi. Чтобы устранить проблему, я попытался войти в нее, но любой удаленный доступ запрещен (кроме веб-интерфейса, который в моем случае бесполезен). Поэтому я решил поиграть с прошивкой камеры. Было довольно легко просматривать и извлекать содержимое прошивки с помощью 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
Блок "LZMA сжатые данные" содержит реальную систему, и там можно включить telnet и внести другие изменения.
Но binwalk, кажется, бесполезен для упаковки системы обратно в файл прошивки, подходящий для загрузки в камеру. Кто-нибудь может объяснить или указать ресурс, объясняющий, как создать этот файл прошивки, пожалуйста?