
Инструменты для анализа прошивки принтеров Canon Pixma
Небольшие утилиты для распаковки прошивки принтеров Canon PIXMA для анализа.
Некоторые принтеры Pixma не могут сбросить счётчик отработанных чернил и теперь отказываются печатать, даже если контейнер для отработанных чернил был заменён. Мне стало интересно, как устроена прошивка изнутри, чтобы найти способ сброса счётчика. Но я быстро оставил эту затею. Тем не менее, это было интересно, и, возможно, пригодится другим исследователям? В основном я просто реализовал то, что описано на https://www.contextis.com/en/blog/hacking-canon-pixma-printers-doomed-encryption
Скачайте прошивку Узнайте идентификатор USB-устройства принтера Pixma, например 04a9:1769 Затем скачайте прошивку, подставив идентификатор устройства вместо 1769 в следующую команду:
wget wget -O - -o /dev/null http://gdlp01.c-wss.com/rmds/ij/ijd/ijdupdate/1769.xml | sed -n 's:.*<url>\(.*\)</url>.*:\1:p'
Расшифруйте прошивку и декодируйте SREC-файл в бинарный формат Для этого потребуется srec_cat из пакета srecord, например srecord-1.64: http://srecord.sourceforge.net/
./pixma_decrypt 1769V1100AN.bin decoded.asc grep -v -e '^SF' decoded.asc | srec_cat -o decoded.bin -binary
Теперь можно попробовать распаковать полезную нагрузку: ./pixma_unpack decoded.bin firmware.bin
Если нужно расшифровать данные сертификата (зачем бы вам это ни понадобилось… Это просто список сертификатов доверенных центров сертификации, так что непонятно, зачем его вообще «зашифровали»):
wget http://dtv-p.c-ij.com/sdata/struct01/sdata.bin ./dec_sdata sdata.bin sdata.dec