Перейти к содержанию
    

NAND ECC помогите определить алгоритм расчета

Мне нужно модифицировать данные в чужом китайском железе в NAND флешке. После каждых 2 КБ данных явно есть 64 байта ECC.

Я приложил блок данных 2 КБ в бинарном фале, после него во флешке находится такой блок данных:

FF FF FF FF FF FF FF 03  C0 00 FF FF FF FF FF FF
FF FF FF FF FF FF FF 0C  CC 33 FF FF FF FF FF FF
FF FF FF FF FF FF FF C3  F3 F3 FF FF FF FF FF FF
FF FF FF FF FF FF FF 0C  0F 03 FF FF FF FF FF FF 

Из готовых утилит для расчета нашел только здесь https://processors.wiki.ti.com/index.php/NAND_ECC_Generation_for_DaVinci_Family_of_Devices

У меня получились такие результаты 

NAND operation #1
        NAND4BITECC1 = 0286037B
        NAND4BITECC2 = 007002F2
        NAND4BITECC3 = 01D002D4
        NAND4BITECC4 = 0276031B
NAND operation #2
        NAND4BITECC1 = 01AB0242
        NAND4BITECC2 = 026E0188
        NAND4BITECC3 = 01E502D1
        NAND4BITECC4 = 02B10352
NAND operation #3
        NAND4BITECC1 = 03BB019F
        NAND4BITECC2 = 028A00C1
        NAND4BITECC3 = 003C00A9
        NAND4BITECC4 = 005A031C
NAND operation #4
        NAND4BITECC1 = 02DA0025
        NAND4BITECC2 = 008B02F4
        NAND4BITECC3 = 03280132
        NAND4BITECC4 = 026100B2

и

NAND operation #1
        NANDFxECC = 0x0BF70BF7
NAND operation #2
        NANDFxECC = 0x02ED02ED
NAND operation #3
        NANDFxECC = 0x01310131
NAND operation #4
        NANDFxECC = 0x066F066F

Не вижу ничего похожего на мой блок данных

0x800.bin

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Эти сплошные FF больше похожи просто на стертую область, коды коррекции были бы более случайными.

Алгоритмы используют Хемминга (самый простой, исправление одиночных ошибок), Рида-Соломона или БЧХ (оба посложнее, исправляет несколько сбоев). Для расчета ECC страница 2 КБ может кодироваться целиком, а может разбиваться на блоки эдак по 512 байт. РС или БЧХ коды могут быть построены на разное количество исправляемых ошибок. А еще не факт, что ECC лежит именно в экстра зоне, китайцы могут чередовать данные-ECC-данные-ECC-... сплошняком в основной области. Так что неизвестных для подбора у вас уйма.

Где-то недавно натыкался в сети на программку программатора, которая что-то там делает с ECC для флешки по считанному дампу. Может даже подбирает алгоритм. Вроде бы ремонтники телефонов такую имеют, поищите в эту сторону.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сам себе и отвечу. Вот этот алгоритм дал тот же результат что у меня http://en.verysource.com/code/7159777_1/samsung_new_ecc_for_512byte_256word.txt.html

Дает три байта на каждые 512 байт данных. Назначение остальных FF нашел здесь https://pctuning.tyden.cz/ilustrace3/cerny/2010_SSD1/01_spare_assignment_standard.pdf

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...