Любознательный хакер по имени Йерун Домбург (Jeroen Domburg) заинтересовался, как устроен жёсткий диск и можно ли его хакнуть, перезаписать флэш-память, да и вообще, что с ним можно сделать. Результаты экспериментов над диском Western Digital он опубликовал в блоге.

Автор объясняет, что самая большая проблема — найти документацию для контроллера на электронной плате жёсткого диска. Производители не только не публикуют документацию на своих сайтах, они не упоминают даже о самом факте выпуска этих микросхем.

Например, на фотографии показана флэш-память от 64 КБ до 256 КБ: отсюда контроллер HDD загружает программу. Эта микросхема в отдельном виде присутствует не в каждом винчестере. Документацию вы нигде не найдёте.

004

Домбургу повезло: он наткнулся на форум HDDGuru, где неизвестный инженер описал распиновку для интерфейса JTAG к контроллеру 88i6745. Имея эту информацию, с контроллером можно делать что угодно.

005

006

007

008

Йерун Домбург немедленно взялся за дело. К контактам JTAG и последовательному порту HDD он подключил плату FT2232H (красная плата на фотографии). Для работы на основном компьютере использовалась программа OpenOCD.

003

К счастью, в контроллере 88i9146 распиновка оказалась такой же, как в вышеупомянутом 88i6745. Программа OpenOCD распознала трёхъядерный ARM-процессор, где каждое ядро отвечало за свои функции: первое — за физическое чтение/запись с поверхности диска, второе — обработку данных с интерфейса SATA, работу с кэшем, LBA и CHS. Что делает третье ядро, выяснить не удалось.

009

Методом проб и ошибок Домбург смог осуществить несколько трюков напрямую через контроллер: записать файл с заданным содержанием на жёсткий диск, прочитать и дизассемблировать прошивку контроллера, запустить произвольный код на контроллере с помощью модификации содержимого кэша, внедрить посторонний код в ROM и заменить прошивку (установить буткит).

По словам хакера, в самодельной прошивке можно предусмотреть несколько полезных функций. Например, поставить защиту от клонирования диска. Скажем, если доступ к секторам диска осуществляется в обычном случайном порядке, то прошивка работает нормально, а если начинается клонирование (последовательное считывание секторов), то она может вывести HDD из строя.

Контроллеры HDD мало изучены, любая информация о них на вес золота, так что работа Домбурга достойна продолжения.



11 комментарий

  1. 24.12.2014 at 22:38

    «Контроллеры HDD мало изучены, любая информация о них на вес золота…»
    Звучит как-будто не люди делают контроллеры, а они из джунглей выползают к нам

    • 25.12.2014 at 07:47

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

    • 27.12.2014 at 02:25

      «Звучит как-будто не люди делают контроллеры, а они из джунглей выползают к нам»
      Звучит как-будто не совсем люди скорее зомби-роботы

  2. 25.12.2014 at 09:26

    Как думаете,Cicada в январе объявится?

  3. 25.12.2014 at 13:01

    «Что делает третье ядро, выяснить не удалось»
    Копии данных в анб шлет

  4. 25.12.2014 at 13:07

    «Скажем, если доступ к секторам диска осуществляется в обычном случайном порядке, то прошивка работает нормально, а если начинается клонирование (последовательное считывание секторов), то она может вывести HDD из строя» — весело, обычный chkdsk угробит диск. 🙂

  5. 26.12.2014 at 00:22

    «они не упоминают даже о самом факте выпуска этих микросхем» интересно а как тогда о них узнают производители жёстких дисков?

  6. 26.12.2014 at 18:58

    Domburg — Домбюрг.

  7. 10.06.2015 at 20:45

    Здравствуйте, скажите пожалуйста есть в этом мире какие то способы вытащить информацию с HDD если родной контроллер утерян, сам кейс целый, и блины тоже в полном порядке! Спасибо, если можно напишите ответ на TIMOSHEVSKYIV@yandex.ru Спасибо еще раз!

  8. zoigo

    12.08.2015 at 09:43

    «неизвестный инженер описал распиновку для интерфейса JTAG»

    фейспалм-журнализм, это был Де́ян Ка́левич (Деян Калич, неправильная форма прочтения имени — Дежан Калич, серб. Дејан Каљић) — сербский программист, инженер и математик, один из ведущих разработчиков оборудования для снятия SIM-кодов[1] [2].

    Деян Калевич разботал оригинальную методику атаки SIM-карты, что позволило сократить затраты времени на получение ключа и обойти некоторые новые механизмы защиты карты. Он же разработал одну из программ-эмуляторов SIM-карты для микроконтроллеров PIC16 (PIC16F84 и PIC16F876, на которых базируются популярные «пиратские» карты Gold Wafer и Silver Card)[3].

    Д.Калевич стал особенно известен как разработчик бесплатных программных продуктов для разблокировки платформ DCT-3 и DCT-4 бренда Nokia, ему принадлежит разработка также специального кабеля[4].

    https://ru.wikipedia.org/wiki/%D0%9A%D0%B0%D0%BB%D0%B5%D0%B2%D0%B8%D1%87,_%D0%94%D0%B5%D1%8F%D0%BD

Оставить мнение