Комментарии 39

"Поставить Линукс на жёсткий диск" — это сделало мой вечер!
Спасибо, очень занимательная тема!

Удивлён. Даже не взломом а 2 моментами:
1. Производитель оставил доступ к jtag, возможно решил не заморачиваться с фьюзами на кристалле;
2. не проверяется целостность данных буфера при трансфере.
Так, мое скромное предположение: M3 нужен на этапе холодного старта / перехода в режим низкого энергопотребления и выхода из него, управления питанием чипа, возможно, для первоначальной загрузки загрузчика, простите за тавтологию.
Есть ещё вариант что M3 занимается SMARTом и всякой внутренней диагностикой.
Вот то, что он SMARTом занимается — я с 90% вероятностью не соглашусь. Им, скорее всего занимается A9, который за «блины» отвечает. Просто из статьи — при его холде винт продолжал нормально работать. Не думаю, что он просто «снифит» кучу вещей. А вот время активной работы и слипа — вполне. И акселерометр. Возможно, отслеживать аварийное отключение питания и инттерапт давать на «блинный» A9. Но это только по личному опыту участия в разработке специализированных ASICов. Часто встраивается именно мелкое ядрышко со своим масочным ПЗУ для руления питанием, клоками и 1 стадией загрузки основных ядер. Потом просто засыпает. Удивляюсь, что M3, а не M0, думаю, вопрос лицензирования. Хотя у ST и те и другое ядро куплены.
1. Производитель оставил доступ к jtag, возможно решил не заморачиваться с фьюзами на кристалле;

на новых драйвах уже все залочено
2. не проверяется целостность данных буфера при трансфере.

буквально недавно приделали ECC к памяти
Так, мое скромное предположение: M3 нужен на этапе холодного старта / перехода в режим низкого энергопотребления и выхода из него, управления питанием чипа, возможно, для первоначальной загрузки загрузчика, простите за тавтологию.

Нет, на том драйве что в статье это ядро не используется, а так оно применяется для управления системой шифрования данных
На современных ВД все теже три ядра
0 — Host CPU
1 — Servo CPU
2 — Security CPU
оригинальная статья вышла в 2013, есть подозрение, что многое могло измениться в последних версиях дисков, но не факт.
к п.1 Запись флэш открыта by default, чтобы апдейтами «тренироваться на кошках» в процессе впаривания сырого продукта, чтение… как повезёт.
UART на сигейтах есть, по нему можно поиграть с жестким диском. У других тоже есть, но там сложнее.

Если файловая система зашифрована, то такой хак не сработает

Судя по имени, нику, году и самому стилю, «Dejan с форума» — тот самый Dejan Kaljevic (разблокировка Нокий, извлечение ключей из SIM, да много всего, легендарная личность в определённых кругах, мир его праху).

Я, как участник той темы на hddguru, могу подтвердить, что это точно он.
Лет 15-20 назад репайрил данные с hdd, ещё до того форума… После того как внешний WDшный терабайтник («My Pasport») сам собой покриптовал данные. Доступ к ним до крипто-контроллера получил, но, не их интертрепацию. Бэкапы основного были и не сильно этим заморачивался. Но, у меня, как разработчика MCU-систем, утратились какие-либо комплексы касательно RE и последующего откровенного траха производителей носителей. Понятное дело, что на инструментарии для какеров никто в светлом разуме внимание не акцентирует, но…
Лет 15-20 назад репайрил данные с hdd, ещё до того форума… После того как внешний WDшный терабайтник («My Pasport») сам собой покриптовал данные.

Этого никак не могло случиться 15-20 лет назад, потому как такие диски появились в продаже в 2009 году.
Эти небольшие устройства — не чипы, а пьезоэлектронные вибродатчики. Их можно использовать для перемещения головок в безопасное место, когда HD подвергается механическим колебаниям или ударам, но с наибольшей вероятностью они просто записывают куда-нибудь бит, обозначающий, что пользователь уронил HD и гарантия на него больше не действует.

Очень любопытно, как такие датчики могут работать без питания самого диска? Ронять 3.5" диск при работе несколько необычно по мне (другое дело 2.5" диски).

Каюсь, ронял. Вместе с системным блоком. После этого занялся кабель-организацией. К счастью, данные целы остались. А вот «без питания» — это просто супер фича обычного HDD по сравнению с SDD. Появилась в середине 90х (по крайней мере я с этим встретился, возможно — раньше). При отключении питания привод шпинделя превращается в генератор и запасенной кинетической энергии достаточно, чтоб припарковать головки «по человечески» без удара, если бы это делалось просто пружинкой. Ну и «диагностику» в энергонезависимую память сбросить…
чтоб припарковать головки «по человечески» без удара
Думал, что это только на самых первых hdd с шаговым приводом голов, у себя на компе при штатном выключении через ОС всё равно слышу каждый раз удар
на сколько мне известно, эти датчики используются для подстройки сервосистемы.
нет, для RRO и NRRO.
AAM регулируется скоростью перемещения головок.
Не знаю как в дисках, скорее всего тоже есть в самых крутых (где то проскакивало). Но Thinkpad T60 парковал головы в режиме падения и восстанавливал работоспособность через несколько секунд.
HDAPS у умных ковриков пошла ещё раньше, 40-я серия уже имела оный в себе (T41 и X40 точно, т.к. на примере последнего я выпал в осадок, когда его демонстративно пнули со стола)
похоже, что Western Digital не обфусцировала код намеренно: никаких трюков наподобие перехода в середину инструкции не использовалось
Если память меня не подводит, прыжок по невыровненному адресу — это не трюк и не обфускация, а просто переключение между ARM и Thumb. По крайней мере так было у ARM7TDMI (процессор GameBoy Advance).
Естественно, очередной перевод; а в оригинальном, «русском» хабре, «страдания» 30-летнего «выгоревшего» юнца, мечтающего о том, как бы не работать…
Я каждый день занимаюсь тем, чем занимался автор статьи. И еще много людей это делает. Просто мы не пишем статьи, потому что много секретов :)
А зря, думаю. Чем вы так сильно отличаетесь от автора статьи? Мешает монетизации? ;) Ну, так, типа, «хабр не об этом», раз уж вы тут.
И, в конце-концов, ваши секреты — «секреты полишинеля»; тот, кому захочется/будет реально нужно узнать — таки узнает. Так, что, не очень «оправдание-то».

P.S. Вообще, я понял, чем отличаются статьи русских авторов от западных: например, американский умелец сделает электронный микроскоп, снимет несколько впечатляющих снимков, и переключится на еще более сложную проблему. А автор из России начнет рассусоливать про «токарный станочек», дождется, пока «хабромальчики» ему попу языками не вылижут, своими восторженными комментариями, и на этом закончит; по сути, полностью завалив проект и не добившись результатов (но зато «отмазок», как сейчас модно, у него найдется вагон). А любого, кто поинтересуется результатами «великого русского хакера», немедленно «опустят» — ну, как же можно покушаться на святое?!
Беда в том, что в случае с таким «взломом» мы имеем реальность вида «Прогулка по минному полю — оступился и разлетелся по всей деревне», один косяк и привет капитальным расходам, либо вообще винт «в морг». А комментаторов вида «Я всё сделал как вы писали и всё сломалось — вы гад и чините теперь» у нас хватает.
И, в конце-концов, ваши секреты — «секреты полишинеля»;

Тем более
Если это «секреты полишинеля», то и писать о них смысла ноль, не интересно никому.
тот, кому захочется/будет реально нужно узнать — таки узнает.

стопудово, но это не точно
На HPA временно положен болт, потому как драйвов не заходит в работу.
А в другой статье плачут как подменили диск в коробочке, компьютер определял его как новый дорогой, а там старый WD на 250 битых ГБ с исправленной прошивкой.
А ssd взламывать сложнее? Выпаял nand-чип и его программатором
и ничего, кроме мусора вы там не увидите
контроллер ссд размещает информацию по банкам одному ему ведомыми способами, без таблиц размещения и ключей шифрования, которые хранятся в самом контроллере, ничего не выйдет
Единственная польза со всего этого просто прошить диск до работоспособного состояния и считать с него данные и /или потом продать на авито)). Мне бы все это пригодилось но диск IDE и там просто был сбой по питанию(искра) из за проблемного БП.
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.