Відновлення фотографій з несправною карти пам'яті silicon power cf 32Гб, контролер sm2234h

Відновлення фотографій з несправною карти пам'яті silicon power cf 32Гб, контролер sm2234h

Сьогодні я розповім вам історію про відновлення даних з несправною карти пам'яті CF, що надійшла до нас в сервіс однією з перших. Випадок виявився досить цікавим і, як виявилося, одним з найбільш трудомістких в нашій практиці. Господиня дістала карту пам'яті Compact Flash з фотоапарата і вставила в несправний USB порт, після чого флешка стала некоректно визначатися. Програмні методи не дали результату і карта, побувавши в декількох комп'ютерних майстерень, виявилася у нас. 32 гігабайти які вона вміщала і сьогодні не здадуться маленькими, а на момент поломки її обсяг виглядав гігантським. Розібравши, виявив всередині контролер Silicon Motion SM2234H і чотири стекових мікросхеми NAND пам'яті, дали 8 дампов по чотири гігабайти кожен. Дампи з Випаяв мікросхем довелося довгими годинами вичитувати на программаторе, потім коригувати їх по ECC, багаторазово перечитувати погані сектора для отримання результату з мінімальною кількістю сміття і бітових помилок. Використовуючи потужний комп'ютер з SSD диском вдалося впоратися з цим все за пару тижнів. І ось на руках 8 дампов пам'яті, які не містять нічого схожого на призначені для користувача дані.

Відновлення фотографій з несправною карти пам'яті silicon power cf 32Гб, контролер sm2234h

Сьогодні відомо, що для контролера SM2234H в такій конфігурації характерно об'єднання по байтам, в результаті якого в секторі під номером 16384 виявляється вміст як на верхній картинці, і тепер підбір потрібної послідовності дампов займає хвилини. А без цього знання доводилося цілодобово комбінувати дампи, в надії отримати щось відмінне від сміття. Цей процес ускладнюється тим, що інформація може бути представлена ​​в інвертованому вигляді, розділена на блоки або отXORена невідомим патерном. Після підбору потрібного порядку дампов і інвертування даних стали зустрічатися фрагменти файлів невеликого розміру. З їх допомогою вдалося розібратися в структурі сектора і відокремити області з даними від ділянок зі службовою інформацією. Сторінки розміром 34560 байт складаються з чергуються 2048 байт даних і 104 байт службової інформації. Після перших 2048 байт перед стандартними 104 байтами служебкі йдуть 8 байт службової інформації з даними використовуваними транслятором. Останні 120 байт не використовуються. Дані розділені на частини по 512 байт, щоб використовувати їх в комплексі PC3000 (це стандартний розмір сторінок для нього). 104 байти служебкі використовувалися для корекції помилок, а 8 байт зі зміщення 2048 приєднані до кожної сторінки, щоб можна було відновити транслятор.
Для усунення міксу поділив дампи на рівні блоки по 64 сектора і об'єднав їх, чергуючи блоки з різних дампов. Після цього стали зустрічатися фрагменти файлів порівнянні за розміром з блоком. Скориставшись 8 байтами відновив транслятор, зібрав образ і отримав доступ до даних.

Схожі статті