По сути, это несколько пластин, которые вращаются со скоростью 1. Добавим к этому систему самоконтроля S. M. A. R. T. Короче, без пол литра не разберешься, тем более технология отдельных элементов составляет коммерческую тайну. Высокой точности позиционирования, плотности записи и прочим тонкостям современных HDD можно посвятить не один десяток статей, но мы, не углубляясь в механику диска и физику процессов, рассмотрим наиболее интересную для нас часть электронику. Рис. Плата жесткого диска. Драйвер Для Жесткого Диска Samsung St500lm012' title='Драйвер Для Жесткого Диска Samsung St500lm012' />INFOВ старых моделях жестких дисков часть функций управляющей электроники брал на себя MFM или RLL контроллер компьютера. Но со временем из за высокой скорости передачи данных потребовалось сократить тракт передачи данных, и разработчики отказались от этой идеи. Пациент. Итак, перед нами плата типичного жесткого диска Western Digital WD5. AAKX объемом в 5. Гб рис. Что мы имеем Микросхема DRAM. Интереса как такового не представляет, мануал легко можно найти в Сети. Память этих чипов колеблется от 8 до 6. Мб и соответствуют размеру кеша жесткого диска. Контроллер двигателя шпинделя. Отвечает за управление механикой, регулирует мощность и имеет некоторые аналоговыецифровые каналы. JPG' alt='Драйвер Для Жесткого Диска Samsung St500lm012' title='Драйвер Для Жесткого Диска Samsung St500lm012' />На чип Smooth L7. Флеш память. На некоторых винчестерах микросхема отсутствует, но флеш память бывает встроена в чип контроллера диска. Обычно имеет размер в пределах от 6. Кб. Используется для хранения программы, от которой загружается контроллер жесткого диска. И самая любопытная для нас вещь контроллер жесткого диска. Их производят компании Marvell, ST, LSI и другие. Драйвер Для Жесткого Диска Samsung St500lm012' title='Драйвер Для Жесткого Диска Samsung St500lm012' />Драйвера для жестких дисков Samsung MZ5PA256 В комплект вошли AXM09B1Q Firmware FileLatest Firmware ver. AXM09B1Q 13 May, 2011 0. Интерактивная поддержка всех внутренних и внешних жестких дисков HGST. Утилиты для жестких дисков, драйверы и файлы для загрузки. Некоторые компании, производящие винчестеры, делают свои собственные контроллеры, как, например, Samsung и Western Digital. Контроллер жесткого диска предназначен для управления операциями преобразования и обмена данными от головок чтениязаписи к интерфейсу накопителя. К сожалению, компания Marvell не хочет выкладывать документацию на свою продукцию в открытый доступ. Ну что ж, попробуем разобраться сами. Копнем глубже. Наш зарубежный коллега Джероен Sprite. Этот интерфейс предназначен для тестирования и отладки печатных плат. То есть с помощью JTAG мы можем спокойно подключиться к интересующему нас устройству, поддерживающему стандарт IEEE 1. В микросхему интегрируется порт тестирования TAP Test Access Port, состоящий из четырех или пяти выводов TDI, TDO, TMS, TCK и, возможно, TRST. Расположение этих выводов для контроллера Marvell нашел некий dex, любезно поделившийся результатами на форуме HDDGURU. Джероен выяснил, что у контроллеров Western Digital есть ARM ядро, доступное через JTAG порт. А также последовательный порт, который обычно не используется, но может быть полезен для наших целей. Для исследования контроллера жесткого диска использовалась плата FT2. H, которую можно заказать в интернете за 3. Она поддерживает JTAG, связь через последовательный порт, а также SPI. Для работы с ней использовалась программа Open. OCD. В результате оказалось, что у микросхемы есть целых три ядра. Два Feroceon, которые являются довольно сильными ARM9 подобными ядрами, и Cortex M3, которое немного слабее. У всех ядер разное предназначение Feroceon 1 обрабатывает физические чтениезапись на жесткий диск Feroceon 2 обрабатывает SATA интерфейс, кеш и преобразует LBA в CHS Cortex M3 предназначение неизвестно. Можно просто остановить его, но жесткий диск будет продолжать работать. Добро пожаловать, или Посторонним вход воспрещен. Так как мы ставили перед собой цель использовать жесткий диск для своих коварных целей, то самое время подумать о модернизации его прошивки. Самый простой и, вероятно, сложный в обнаружении способ изменять данные на лету. Чтобы сделать это, нужно найти подходящее ядро ядро, которое имеет доступ к данным, путешествующим между диском и SATA кабелем. Для доступа к ядру можно использовать режим DMA Direct Memory Access. Это такой режим, когда обмен данных происходит непосредственно с головки считывания в память, без активного участия процессора. То же самое относится и к SATA порту процессору нужно только указать, где данные, и логика DMA позаботится о чтении информации непосредственно из памяти. Источником информации в этом случае послужит кеш память винчестера из за ее хорошего расположения данные, считанные с диска, будут в кеше, так что их можно будет сразу оттуда скопировать. Способ довольно сложный неудобно каждый раз подключаться через JTAG и ковыряться в кеше во время работы жесткого диска. Вместо этого для сохранения доступа без подключения дополнительной платы можно перепрошить микросхему флеш памяти, выпаяв и подключив к программатору. Однако было бы сложно модернизировать код из за неизвестного алгоритма сжатия, вместо этого можно просто изменить адрес выполнения и добавить специальный блок, который будет прочитан раньше остальных. Компрессор Dalgakiran Tidy 10 Инструкция здесь. Это делает положение дел немного проще. В результате своего исследования Джероен создал инструмент fwtool, который может сбрасывать различные блоки во флеше и переводить код в текстовый файл. Затем можно изменить, удалить или добавить блок и вновь собрать все в одном файле прошивки, который потом спокойно загрузить во флеш. Меняем прошивку. Подобные манипуляции с жестким диском требуют значительных усилий, и вряд ли кто нибудь добровольно отдаст свой накопитель для взлома. Поэтому было бы неплохо найти способ перепрошивки винчестера без каких либо посторонних устройств или снятия чипа. У компании Western Digital есть специальные программные утилиты для работы с жестким диском это инструменты, работающие под DOS, которые могут загрузить новую прошивку контроллера, микросхемы флеш памяти или сервисного раздела. Инструменты используют так называемые Vendor Specific Commands VSC, впрочем, об этом чуть позже. Также есть набор инструментов под названием idle. Он также использует VSC, применяя Linux SCSI Pass. Through IOCTLs. Джероен взял этот код, изменил его и интегрировал в fwtool. После этой модификации fwtool научился читать и писать на микросхему флеш памяти. Теперь если хакер каким то образом сможет воспользоваться fwtool на удаленной машине, то получит возможность сбросить флеш память диска, изменить ее и зашить обратно. Правда, в конце концов владелец узнает о взломе и, вероятно, переустановит систему, но злоумышленник может внедрить что нибудь, что проявит себя и после переустановки. Например, подождать, пока машина зачитывает из файла etcshadow, где хранятся все пароли в системах UNIXLinux, и изменить содержимое. После чего можно будет просто войти под своим паролем. Кстати говоря, описанная методика может служить не только для подпольных экспериментов, но и для целей защиты. Например, можно создать неклонируемый жесткий диск, который будет работать нормально, если шаблон доступа секторов, как обычно, окажется случайным. Если же винчестер будет доступен только последовательно, то данные будут испорчены, что сделает клон отличным от оригинала. INFOКстати говоря, Джероен решил поделиться результатами своих исследований и выложил почти весь исходный код на своем сайте. Терминальный режим жесткого диска. При работе в терминальном режиме пользователь может взаимодействовать с жестким диском посредством диагностических команд.