| Author |
Message |
nor2

Joined: 26 Mar 2007
Posts: 170
Location: Самара
|
Posted: Wed Oct 24, 2007 15:18 Post subject: Контроллер M-DISK 01-AS-055-00
|
|
Сергей, добрый день!
- Тип флэшки (USB, CF, SD...) = USB
- Название контроллера = M-DISK 01-AS-055-00
- Сколько микросхем памяти = 1шт
- Как они называются = K9K4G08UOM
- Содержание конфиг файла (Show config) = стандартное для этого типа
- Сколько дампов получилось = 1 шт
- Нашли ли FAT = да
- Есть ли микс = нет
- Избавились от него?
FAT32 найден и какталоги...
как я понял формат следующий:
с 200 по 207 пишутся всякие коды коррекции.
т.к. если блок забит нулями то эта область тоже вся в нулях.
с 208 по 20F маркер FF и он не меняется во всем дампе ().
а дальше....
дамп M-DISK 01-AS-055-00_300k.rar залил на FTP
|
|
|
Сергей

Joined: 26 Aug 2005
Posts: 20281
Flash-Extractor developer
|
Posted: Wed Oct 24, 2007 15:43 Post subject:
|
|
В служебке нет маркера, значит где-то есть таблица транслятора.
Надо самостоятельно писать отдельную программу.
Мы можем этим заняться за 1500р.
|
|
|
nor2

Joined: 26 Mar 2007
Posts: 170
Location: Самара
|
Posted: Wed Oct 24, 2007 16:08 Post subject:
|
|
Понятно!
а можно по подробнее описать алгоритм сборки... пока без интимных подробностей...
|
|
|
Сергей

Joined: 26 Aug 2005
Posts: 20281
Flash-Extractor developer
|
Posted: Wed Oct 24, 2007 16:18 Post subject:
|
|
Нужно найти таблицу транслятора.
В ней лежат координаты блоков в порядке следования в образе.
Программа должна брать блоки из дампа, отсекать служебку и класть в образ.
|
|
|
Сергей

Joined: 26 Aug 2005
Posts: 20281
Flash-Extractor developer
|
Posted: Wed Oct 24, 2007 16:21 Post subject:
|
|
Кстати, попробуй Dump_Converter / Raw
Вдруг, повезёт и блоки просто идут по порядку.
Так иногда бывает в старых флэшках.
|
|
|
nor2

Joined: 26 Mar 2007
Posts: 170
Location: Самара
|
Posted: Wed Oct 24, 2007 17:01 Post subject:
|
|
попробую, но судя по содержимому - блоки идут не подряд...
а как должна выглядеть таблица транслятора и каков примерно ее размер?
|
|
|
Сергей

Joined: 26 Aug 2005
Posts: 20281
Flash-Extractor developer
|
Posted: Wed Oct 24, 2007 17:01 Post subject:
|
|
Похожа на таблицу FAT16.
Несколько секторов.
|
|
|
nor2

Joined: 26 Mar 2007
Posts: 170
Location: Самара
|
Posted: Wed Oct 24, 2007 17:06 Post subject:
|
|
ну и понятное дело может находиться где угодно...
но скорей всего в начале или конце дампа...
|
|
|
nor2

Joined: 26 Mar 2007
Posts: 170
Location: Самара
|
Posted: Tue Nov 06, 2007 20:06 Post subject:
|
|
Что удалось выяснить.
1. Блоки длиной 0х21000
2. Всего блоков 4096
блок 4095 - содержит:
а) таблицу плохих блоков.
б) ссылки на блоки с расположением таблиц транслятора
в) текст типа: Generic USB Flash disk 1.00FF05012900021
блок 4096 - кроме текста "FC1325N4 2004-07-17" ничего не содержит
3. Таблица транслятора располагается в блоках с 4094 по 4078 (16 блоков).
4. Первый блок должен иметь номер 7 с адресом 0хe7000 (0х21000*7)
Дальше полная неразбериха.
В блоке 4094 очень много таблиц с разницей в одном байте.
Допустим там как-то можно выбрать (подобрать) вариант с правильным расположением блоков.
В остальных блоках под таблицу отведено только первых 512 байт, но судя по содержимому реально 498. Остальные 14 байт - не понятно по какой логике используются.
Далее для меня не ясно:
Содержимое блоков 4082, 4083, 4085, 4092 одинаково и в них есть одинаковые номера блоков, есть недопустимое значение типа FFFF.
В блоках 4079-4085, 4092 первый блок с номером 0х0915.
Блок 4091 весь в FFFF
Блок 4086-4090, 4093 - первый блок с номером 0х01a3. есть повторения номеров и FFFF
Блок 4078 - первый блок с номером 0х05ba, повторяющихся номеров блоков нет.
Вопрос!
Как собирать таблицу в таком случае?
Почему она не полная? Ведь при полном объеме в 512Мб необходима последовательность блоков длиной 4096 или менее с учетом резервных и бэдов.
Может она создается (дописывается) динамически при появлении информации для записи? Тогда не понятно как распределяются блоки при форматировании флэшки.
Прошу совета!
|
|
|
Сергей

Joined: 26 Aug 2005
Posts: 20281
Flash-Extractor developer
|
Posted: Tue Nov 06, 2007 20:16 Post subject:
|
|
4096 / 512 = 8
То есть всего 8 секторов таблицы транслятора.
Чтобы обновить транслятор флэшка не будет стирать целый блок.
Она просто допишет в конец текущего блока новый вариант таблицы.
Поэтому ты видишь массу похожих одна на другую таблиц.
Бери последнюю.
|
|
|
nor2

Joined: 26 Mar 2007
Posts: 170
Location: Самара
|
Posted: Tue Nov 06, 2007 21:19 Post subject:
|
|
4096 блоков можно описть только двумя байтами.
Таким образом из 512байт используется 256... и мы получам 16 секторов таблицы транслятора.
Последние 16 байт (из 512) всегда имеют вид
хх1 хх2 FF FF FF FF FF FF xx9 xx10 xx11 xx12 FF FF FF FF
где хх1 хх2 - номер блока, а xx9 xx10 xx11 xx12 - не понял, но по диапазону значений походят тоже на номер блока...
А что делать с остальными записями таблицы транслятора, в которых всего 512 байт с поторяющимися номерами блоков и не допустимым диапазоном (ffff) значений блоков?
|
|
|
Сергей

Joined: 26 Aug 2005
Posts: 20281
Flash-Extractor developer
|
Posted: Tue Nov 06, 2007 22:07 Post subject:
|
|
| nor2 wrote: | 4096 блоков можно описть только двумя байтами.
Таким образом из 512байт используется 256... и мы получам 16 секторов таблицы транслятора. |
Это ты верно подметил )
| nor2 wrote: | | А что делать с остальными записями |
Не знаю.
Думать...Изучать...Искать...
|
|
|
nor2

Joined: 26 Mar 2007
Posts: 170
Location: Самара
|
Posted: Tue Nov 06, 2007 22:38 Post subject:
|
|
|
Прошу тему пока не закрывать... чего накопаю - сообщу
|
|
|
Сергей

Joined: 26 Aug 2005
Posts: 20281
Flash-Extractor developer
|
Posted: Tue Dec 25, 2007 14:19 Post subject:
|
|
Говорят, может подойти утилита Memory_Stick
В новой версии Flash_Extractor появился Dump_Search / Simple_Translator
|
|
|
|