Загрузочный USB-накопитель на микроконтроллерах FC8908, SC908AN с защитой от записи.
Часть первая. Немножко лирики.
Почему я решил написать эту статью? По сети и так уже гуляют сотни, а то и миллионы подобных инструкций. Широко на разных языках обсуждаются всевозможные вариации защиты USB-накопителей, как от случайной потери содержимого, так и от заряжения своего персонального ПК всяческими вирусами и шпионами.
Во-первых, я так и не нашел четкого и ясного ответа на то, как это сделать в случае когда даже производственная утилита не предусматривает задействовать соответствующий вывод микроконтроллера (или мне нужный вывод “WP” микроконтроллера выполняет какие-то другие функции) для установления микропереключателя для так называемой аппаратной защиты. Какая тогда эта на самом деле аппаратная защита, если ее функционирование активируется программным путем?
Во-вторых, пусть то, про что я пишу, поможет читателю задуматься - на что он готов тратить свои деньги и понять, что обещанного он может и не получить. Это относится как к самим USB-накопителям, так и к программным обеспечениям для работы с ними.
Начну с того что я ничего не понимаю в терминологии программистов но причина появления этой статьи именно они. Это они с одной стороны облегчили мою жизнь – целое море книг могу переписать за считанные минуты, но с другой стороны и осложнили до безумия. Это какой идиот создает программы, которые за доли секунд превращает мои труды в непригодность? Если бы этого делали так называемые вирусы, я бы промолчал, но этого делают и широко разрекламированные и дорогостоящие, по мнению разработчиков (программистов), антивирусные программы. Мне удобнее пользоваться “autorun” при подключении USB-накопителя - меню выбора на экране появляется или сообщение о необходимости ввести ключ доступа к содержимому. Со своим компьютером проблем нет, но при подключении накопителя к аппаратуре другого владельца возникают разногласия между тем, что у меня на флешке и тем, что про это думает крутейший антивирус.
Программисты отчасти виноваты и в том, что нам подсовывают производственный брак. К примеру, далее в статье упомянутые флешки были проданы и кем-то куплены как 32ГБ USB-накопители. Ко мне попали наипростейшим образом – мол, у тебя компик все умеет, посмотри, почему я не могу скопировать свои фотосъемки. Трудно и тяжело человеку объяснить, что его попросту развели и что это не 32ГБ накопитель. (Жаль не денег, а семейных фотографий.)
Долго пролежали несколько таких накопителей – реальная емкость от 5.6 ГБ до 7.6 ГБ. Что с ними делать?
Вспомнил про компьютеры, в которых СД приводов нет. Про вирусы, что подхватывал, пытаясь оживить полумертвую систему. Про необходимые драйверы. Про трудности скопировать с дефектного жесткого диска. Про восстановление случайно отформатированной флеш памяти фотоаппарата. Решил сделать себе защищенный от модифицирования накопитель с минимумом программ, которые облегчали бы жизнь и одновременно, чтобы он был загрузочным.
Нашел утилиту, которая вернула к жизни накопителей – FC MpTool_D3eD3_v05.02.04. Пытался поставить механический переключатель, даже перепаивал микросхемы (кстати, паяльником советских времен – тут не столько особый инструмент поможет, сколько умение им пользоваться). Безуспешно. Пытался создать СД раздел утилитой AlcorMP(130201.eD3) – все не то, чего я хотел. На время забросил свою затею. Перепробовал несколько других программных способов – свой компьютер я могу защитить от чужых флешек но свою флешку от чужого компьютера на все 100% не получилось.
Скачал все, что смог найти, утилиты к контроллерам FC8908, SC908AN и тут обратил внимание на то, что в некоторых старых версиях выбор шире. И диск можно так и этак создать и даже СД создавать, но те утилиты напрочь отказались работать с микросхемами памяти. На памяти нет обычных обозначений, только циферки, к примеру, 600109. (Обозначений нет и под микросхемами – специально отпаивал, чтобы посмотреть.)
Стал разбираться, чем возможности утилит отличаются – нашел, что за выбором возможных действий отвечает файл SETUP_DLL.dll в папке DLL утилит. Решил подменить эти файлы. Подменой .dll получил флешки однако весьма странные. Хоть и программы типа Flash Drive Tester v1.14 и MyDiskTest.exe ничего подозрительного не находили, я записал .iso файлы и сверял их с оригиналом программой md5.exe. Обнаружил что копии файлов большого размера (около 1ГБ) частенько не совпадали с оригиналом.
Игру с подменой .dll прекратил, но нашел, что функцию WriteProtect можно включить в самом FC MpTool.ini файле, вместо 0 прописав 1. Заодно надо активировать и DiskIMGFlag. Со старой версией (3.0.0.16) .dll (от утилиты FC MpTool FC8308 FC8508 FC8406 v03.00.02) удачно скопировал некоторое количество данных и получил защищенную от записи флешку. Но мне была нужна загрузочная флешка с MBR, правильной геометрией и всем остальным, что необходимо. В поисках утилиты к несчастью первой попалась imageUSB.exe. Провозился я с ней долго и безуспешно – флешку втыкаешь, а данных нет, и Windows предлагает ее отформатировать.
И вторая программа, имеющая как бы функцию “Clone Disk” - WinHex, подвела. Сейчас самому смешно, потому что оказалось, что первая программа вместо первого сектора как дешевая проститутка прописывает свой контактный телефон и сдвигает офсет ровно на этот сектор, а вторая вообще не умеет клонировать диск целиком, а лишь только раздел. По логике получается, что WinHex флешку все же считает флопиком. Вот такие программы создаются программистами.
Тут меня выручила случайность – необходимо было привести к работоспособности накопитель на контроллере SK6202. В поисках подходящего инструмента была найдена маленькая утилита CreateDiskImage.exe (в папке производственных программ SK6281 PDT 20080409) созданная неким TODO. Элементарна до безобразия, флешки свыше 1ГБ немножко странно клонирует (синяя полоска то появляется, то исчезает). Но правильно показывает, что работает (busy) и что самое главное - создает “.iso” файл с MBR и правильным офсетом, да и обратно запихать уметь. Записав созданный утилитой CreateDiskImage.exe .iso файл обратно на флешку, указав утилите FC MpTool на необходимость защитить от модифицирования, я достиг своей цели – получил загрузочный USB-накопитель с защитой от записи.
Учитывая, что функция “writeprotect” а также копирование файла .img присутствует во многих производственных утилитах, дальше постараюсь описать в подробностях и с картинками как это сделал я. Почему именно так – читайте все с самого начала. Про MBR (главный загрузочный сектор) можно и нужно почитать в статье “ Всё о MBR, Boot-Record, Геометрии дисков (флешек)”
Часть вторая. Практические действия по созданию загрузочного с защитой от записи USB-накопителя на микроконтроллерах FC8908, SC908AN.
Что нам необходимо:
- Флеш накопитель с контроллером FC8908, SC908AN, которого не жалко выкинуть в случае неудачных действий,
- Производственная утилита, предназначенная именно для такого накопителя – мне подошла FC MpTool_D3eD3_v05.02.04 и на первый взгляд ею вообще нельзя записать .img и еще с защитой от записи,
- Утилита CreateDiskImage.exe (в папке производственной утилиты SK6281_PDT_20080409)
- Программа низкоуровневого форматирования HDDLLF.4.40.exe – бесплатная версия все нужное делает,
- Программа Paragon Backup & Recovery™ 2013 Free – умеет работать с флешками, как с жесткими дисками и создает все необходимое для установки grub4dos,
- grub4dos – бесплатная,
- WinContig – бесплатная,
- md5.exe или любая другая (бесплатная), чтобы проверить идентичность файлов,
- Windows XP SP3,
- ниже средних знания в обращении и редактировании .ini файлов,
- хорошее настроение, терпение и уверенность в своих действия
Как работать с утилитой FC MpTool_D3eD3_v05.02.04, установить grub4dos, и как пользоваться другим перечисленным, легко найти, поэтому стандартные процедуры рассматривать не буду.
Порядок процедуры:
- Флеш накопителю с контроллером FC8908, SC908AN (FC так и просится называть fucking capacity) восстанавливаем реальную емкость – у меня с 32ГБ остались от 5 до 7.6 ГБ. Это легко делается за два подхода.
Для примера я создал накопитель только необходимого объема
- Полное форматирование утилитой HDDLLF 4.4
- Создание активного раздела программой Paragon Backup & Recovery™ 2013 Free
- Установка grub4dos
- Копирование на флешку файлов
- Проверка подлинности файлов на флешке
- Получение клона флешки в виде файла “.iso”
- Редактирование файла FC MpTool.ini
- Запись файла “.iso”
- Проверка на подлинность файлов на накопителе с защитой от записи
- Проверка загрузочной способности
- Проверка эффективности защиты
Результат поразительной эффективности защиты – выдергивал флешку при обращении системы к файлам, издевался всячески, даже заставлял утилите HDDLLF 4.4 отформатировать, но данные всегда целехонькие. Если насильно и упорно приказать что-либо удалить, то скорее сам Windows повиснет.
Дополнительно
Тут фотки 32ГБ USB-накопителей
Внутренности (светодиоды поменяны и они разноцветные)
Микросхемы памяти по показаниям FC Mp Tool - SDTNPNAHEM-008G и TC58NVG6T2HTA00. Контроллеры FC8908 (с кварцем от детских игрушек) и SC908AN (что-либо дальше прочитать затруднительно). Комбинации контроллер + память разные, т.е. как бы все флешки разные.
Я как автор данной методики установления защиты от записи на USB-накопитель с использованием метода модифицирования файлов .ini (если у Вас такое сочетание контроллер + память других возможностей, на данный момент я не нашел) ставлю следующие условия:
Вы имеете права:
1 размещать (переводить) на свой сайт статью или только в полном объеме, указав первоисточник (ссылка на наш форум) или,
2 размещать только вторую часть без модифицирования текста или снимков и без сокращений, но добавляете скромную строчку, что любительская пиротехника должна иметь законное право на существование.
Комментарии приветствуются – как про правописание, так и про ошибки (ну не мае дело лезть в программах).