LINUX.ORG.RU

Изменение *.bin или «взлом» через хомяк

 ,


0

2

В общем так - есть электронная книга lbook ereader v5. Внутри linux, есть возможность прошивки. Очень неприятно, что нет профилей - когда настраиваешь все под себя, матери потом приходится все менять под себя. Потом мне под себя и т.д. Достаточно одного скрипта на баше и диалога при старте, чтобы решить «проблему». Скачал прошивку с сайта «производителя». rar архив, внутри - bin файл (127 мб):

http://img571.imageshack.us/img571/6825/13042012202307.png

Что можете сказать, и какие могут быть теоретические способы «разархивировать» этот бинарь в что-то читаемое, добавить в него пару скриптов и залить обратно?

Или может имеет смысл влезть в саму файловую систему на устройстве, изменить там кое-чего напрямую? Насколько я понял с сайта «производителя», там стоит WOLF Linux (?). Связь только с USB, есть возможность вставить SSD. Когда подключаюсь по USB виден только каталог, куда можно сбросить книги. Насколько я понял по наличию .* каталогов, это хомяк.

----

Нашел такую ссыль: http://www.jinke.com.cn/Compagesql/English/develop/sdk.asp Там же рядом и Souces от ereader.

Но, как я понял, версия, для какой книги там не указана + при регистрации:

jmail.Message ���� '8000ffff'

The message was undeliverable. All servers failed to receive the message

/Compagesql/English/develop/sdkreg.asp���� 62

★★★

Последнее исправление: CYB3R (всего исправлений: 4)

Для начала file firmware.bin. Возможно, с некоторым смещением. Ещё, возможно, прошивка с электронной подписью, т.е. хрен прошьёшь что-то левое.

PolarFox ★★★★★
()
Ответ на: комментарий от PolarFox

Для начала file firmware.bin.

data

Возможно, с некоторым смещением.

Как это проверить?

Ещё, возможно, прошивка с электронной подписью, т.е. хрен прошьёшь что-то левое.

Вполне возможно. Хз, как проверить.

Значит остается вариант запуска скрипта из хомяка. Там 32 мб ОЗУ, буду надеяться, что 1) Там есть основные команды типа sh или bash и 2) что есть хотя бы теоретическая возможность запустить скрипт из интерфейса, а не прочитать его.

AlexCones ★★★
() автор топика
Ответ на: комментарий от AlexCones

Как это проверить?

Придумать простой цикл, который будет с некоторым смещением скармливать tail файла в file, пока тот не обнаружит что-то отличное от data.

Значит остается вариант запуска скрипта из хомяка. Там 32 мб ОЗУ, буду надеяться, что 1) Там есть основные команды типа sh или bash и 2) что есть хотя бы теоретическая возможность запустить скрипт из интерфейса, а не прочитать его.

А читалку, случаем, никто до этого не джейлбрейкал?

PolarFox ★★★★★
()
Ответ на: комментарий от PolarFox

А читалку, случаем, никто до этого не джейлбрейкал?

Не нагуглил. Скорее всего нет.

AlexCones ★★★
() автор топика
Ответ на: комментарий от PolarFox

(Хотя можно попробовать поставить оригинальную или от других ОЕМщиков).

PolarFox ★★★★★
()
Ответ на: комментарий от Artificial_Thought

Это фото с сайта производителя, свою не разбирал. Но по идее быть не должно, обратите внимание, плата лежит к поверхности ровно, если бы там был UART`овский выход, она бы криво лежала - он выпирает.

AlexCones ★★★
() автор топика
Ответ на: комментарий от leonidko

Хм.. Если там действительно разъемы под pogo pin, то радости это не доставляет - у меня нет порядка выходов.

AlexCones ★★★
() автор топика
Ответ на: комментарий от Artificial_Thought

А что будет, когда попытки закончатся? И вообще, хоть и есть на работе возможность подключиться через отладку, очень не хочется это делать. Давайте считать, что разъема все-таки нет.

AlexCones ★★★
() автор топика
Ответ на: комментарий от Artificial_Thought

Лично я через отладку - нет. В отделе есть человек (точнее 3), которые только этим и занимаются.

AlexCones ★★★
() автор топика
Ответ на: комментарий от PolarFox

Значит остается вариант запуска скрипта из хомяка. Там 32 мб ОЗУ, буду надеяться, что 1) Там есть основные команды типа sh или bash и 2) что есть хотя бы теоретическая возможность запустить скрипт из интерфейса, а не прочитать его.

В общем так - файлы, формат которых не понимает - не выводит на экран. Скрипт в формате txt не запускает, а «читает» содержимое.

Какие могут быть уязвимости для выполнения кода скрипта через другие программы?

AlexCones ★★★
() автор топика
Ответ на: комментарий от AlexCones

В целом какие угодно. Традиционно дырки обычно есть в браузере и в pdf-вьювере. Но это уже тема для отдельного исследования, за реализацию которого тебе может и на пиво с красной икрой подонатят благодарные пользователи открытых прошивок или хаков.

PolarFox ★★★★★
()
Ответ на: комментарий от PolarFox

Браузера внутри нет, пдф читалка не рендерит активные элементы. Где можно почитать про уязвимость в пдф, хочется все-таки проверить, может что-то сработает.

AlexCones ★★★
() автор топика
Ответ на: комментарий от anonymous
[23:05:25][alex][~/Загрузки/binwalk-0.4.3/src]: ./binwalk -m /home/alex/Загрузки/binwalk-0.4.3/src/magic.binwalk  ~/ROMS/v5setup.bin 

DECIMAL   	HEX       	DESCRIPTION
-------------------------------------------------------------------------------------------------------
1061412   	0x103224  	gzip compressed data, from Unix, last modified: Thu Jan 20 13:26:37 2011, max compression
3145728   	0x300000  	CramFS filesystem, little endian size 3239936 version #2 sorted_dirs CRC 0x18f3621e, edition 0, 1757 blocks, 477 files
4379894   	0x42D4F6  	JFFS2 filesystem data big endian, JFFS node length: 346131
9437184   	0x900000  	CramFS filesystem, little endian size 98058240 version #2 sorted_dirs CRC 0xa2c4c956, edition 0, 39849 blocks, 921 files
25803611  	0x189BB5B 	JFFS2 filesystem data big endian, JFFS node length: 607328
41702506  	0x27C546A 	Windows CE RTOS
43623011  	0x299A263 	gzip compressed data, extra field, from Unix, last modified: Wed Mar 19 23:09:52 2008, max compression
96016641  	0x5B91901 	gzip compressed data, was "\272\260\036\026\026\3365z\227\220\2213\313\220\203S\240k\325.\321\010}\357\301\335\3635?\027H\001\266\304\222v\214\365\220\223\250\221\244\2758\253\344\243R\317{\337\010l\255c[\003\372!\320\363@", has comment, comment, last modified: Sat May 15 11:33:40 2004
104915291 	0x640E15B 	gzip compressed data, extra field, encrypted, last modified: Fri Nov 28 09:07:52 2025
131072000 	0x7D00000 	JFFS2 filesystem data little endian, JFFS node length: 24
131072024 	0x7D00018 	JFFS2 filesystem data little endian, JFFS node length: 52
131072076 	0x7D0004C 	JFFS2 filesystem data little endian, JFFS node length: 164
131072240 	0x7D000F0 	JFFS2 filesystem data little endian, JFFS node length: 55
131072296 	0x7D00128 	JFFS2 filesystem data little endian, JFFS node length: 124
131072420 	0x7D001A4 	JFFS2 filesystem data little endian, JFFS node length: 70
131072492 	0x7D001EC 	JFFS2 filesystem data little endian, JFFS node length: 52
131072544 	0x7D00220 	JFFS2 filesystem data little endian, JFFS node length: 234
131072780 	0x7D0030C 	JFFS2 filesystem data little endian, JFFS node length: 52
131072832 	0x7D00340 	JFFS2 filesystem data little endian, JFFS node length: 162
131072996 	0x7D003E4 	JFFS2 filesystem data little endian, JFFS node length: 57
131073056 	0x7D00420 	JFFS2 filesystem data little endian, JFFS node length: 162
131073220 	0x7D004C4 	JFFS2 filesystem data little endian, JFFS node length: 52
131073272 	0x7D004F8 	JFFS2 filesystem data little endian, JFFS node length: 199
131073472 	0x7D005C0 	JFFS2 filesystem data little endian, JFFS node length: 55
131073528 	0x7D005F8 	JFFS2 filesystem data little endian, JFFS node length: 192
131073720 	0x7D006B8 	JFFS2 filesystem data little endian, JFFS node length: 52
131073772 	0x7D006EC 	JFFS2 filesystem data little endian, JFFS node length: 192
131073964 	0x7D007AC 	JFFS2 filesystem data little endian, JFFS node length: 47
131074012 	0x7D007DC 	JFFS2 filesystem data little endian, JFFS node length: 80

Что это дало?

AlexCones ★★★
() автор топика
Ответ на: комментарий от PolarFox

Мой iriver Story умеет выполнять произвольные sh скрипт с флешки. Надо только в директорию с определённым именем закинуть. Я так даже эмулятор терминала написал для него. Если кому интересно код на https://github.com/ArtifTh/einkterm
По идее на девайсе ТС тоже должно запуститься.

Artificial_Thought ★★★★
()
Ответ на: комментарий от Artificial_Thought

Надо только в директорию с определённым именем закинуть.

Напомнило:

Существо, родившееся в определенный день от определенных родителей, под определенным знаком.

В какую директорию и под каким именем?

AlexCones ★★★
() автор топика
Ответ на: комментарий от AlexCones

Второй gzip-compressed блок распаковался - англо-русский словарик.

AlexCones ★★★
() автор топика

У меня была читалка, прошивку которой я модифицировал. Мой способ, скорее всего, не подойдёт, но я делал так:

Прошивка была zip-архивом. Он распаковывается в несколько файлов. Самый большой — сама прошивка — архив tar, зашифрованный AES. Рядом было ещё ядро и initrd, которое грузится только в режиме прошивки. В этом initrd был файл с ключом для расшифровки основного тара.

Поэтому возможно, что здесь тоже есть зашифрованные куски и надо там же искать ключ для их расшифровки. Если шифрование симметричное — то повезло. Если ассиметричное и скрипт для прошивки выполняется на читалке, и он лежит там же — надо его править. Если что-то другое, то сложнее.

gentoo_root ★★★★★
()
Ответ на: комментарий от cdslow

Если это сработает, буду очень и очень вам благодарен!

Кстати, как вы нашли эту страницу? Каков был ход рассуждений?

AlexCones ★★★
() автор топика
Ответ на: комментарий от cdslow

Да! Это сработало! Спасибо! Правда как я и думал, я нахожусь в /home, а не в /mnt, как написано в мане. Ну теперь-то я поколдую >:)

AlexCones ★★★
() автор топика
Ответ на: комментарий от AlexCones

Кстати, как вы нашли эту страницу? Каков был ход рассуждений?

Мне помогло глубинное сакральное знание о том, что openinkpot это основной проект, занимающийся открытыми прошивками для читалок, поэтому начинать нужно оттуда.

cdslow ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.