Dyna mass storage production tool как пользоваться
Перейти к содержимому

Dyna mass storage production tool как пользоваться

Как перепрошить флешку

Существует множество причин, по которым флешка внезапно перестаёт нормально работать: данные не читаются, накопитель не виден в Проводнике, требует форматирования или даже не опознаётся системой. Самая безобидная из них — возникающие вследствие преждевременного извлечения накопителя ошибки файловой системы, с которыми вполне успешно справляется запущенная с параметрами /f и /r штатная утилита chkdsk. В более сложных случаях — износе памяти применяется ремапинг, когда повреждённые ячейки маркируются как более неиспользуемые. Но даже ремапинг не гарантируют восстановление нормальной работы устройства памяти. Если повреждённой оказывается микропрограмма контроллера флешки, чтобы вернуть переносной диск к жизни, потребуется его перепрошивка.

Как перепрошить флешку

Что такое перепрошивка

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

Признаки повреждения микропрограммы

Повреждение микропрограммы контроллера может быть вызвано преждевременным извлечением накопителя в процессе активного его использования, сбоем питания и некоторыми другими причинами. На неполадку этого рода чаще всего указывают следующие признаки:

• Флешка определяется как «Неизвестное устройство».
• Накопитель доступен только для чтения, запись и удаление с него данных невозможны.
• Размер флешки в диспетчере устройств и других менеджерах дисков определяется как нулевой.
• При подключении накопителя выдаётся сообщение «Вставьте диск в дисковод» или «Нет доступа к диску».

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

Предостережение

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

Определяем модель контроллера и Flash ID

Первое, что вам нужно сделать, это определить модель контроллера и идентификатор используемой памяти. Для этих целей можно воспользоваться такой утилитой как Flash Drive Information Extractor. Это бесплатное портативное приложение доступно для скачивания с сайта разработчика www.antspec.com/usbflashinfo.
Подключите к ПК съёмный накопитель, запустите утилиту и нажмите «Получить информацию о флешке». Для удобства полученные данные лучше скопировать в текстовый файл. В списке характеристик вам нужно запомнить два параметра:

1. Controller: (в нашем примере это Silicon Motion SM3257 ENBA).
2. Flash ID: (у нас это 98DE9493 7657).
Примечание: если вдруг Flash Drive Information Extractor не сможет извлечь данные о флешке, воспользуйтесь альтернативными утилитами ChipGenius или ChipEasy.

Информация о накопителе у вас есть, осталось подобрать соответствующую производственную утилиту. Перейдите на сайт www.usbdev.ru, переключитесь в раздел «Файлы» и прокрутите страницу вниз.
Здесь вы найдёте длинный список производителей контроллеров, среди которых вам нужно найти свой. У нас это Silicon Motion, у вас производитель может быть иной.
Перейдя по ссылке, выберите в меню слева пункт «РЕМОНТ С ПОМОЩЬЮ SMI MPTOOL». В итоге вы окажетесь на странице загрузки производственной утилиты, кликните по ссылке SMI MPTool.
Перед вами предстанет внушительный список запакованных в архив утилит, в которых помимо исполняемого файла находится также и версия прошивки. Как понять, какой именно архив вам нужен? Вот тут как раз вам пригодится маркировка производителя контроллера SM3257 ENBA. Пробел в маркировке обычно не используется, поэтому убираем его и получаем SM3257ENBA, а затем выполняем по нему поиск на странице и находим несколько совпадений. Скачиваем архив с последней версией утилиты и распаковываем его в удобное расположение.

Примечание: перед тем как скачивать утилиту, ознакомьтесь на странице загрузки с рекомендациями. Так, для нашей флешки с контроллером SM3257ENBA рекомендуется использовать не SMI MPTool, а Dyna Mass Storage Production Tool — похожий по функциональности инструмент. Ниже мы покажем, как с ним работать, а пока остановимся на SMI MPTool.

Сопоставляем Flash ID с данными в файле с прошивкой

Распаковав архив, вы найдёте в нём исполняемый файл производственной утилиты и набор каталогов, но не спешите запускать программу. Сначала нужно убедиться, что она действительно поддерживает тип памяти вашего устройства. Для этого как раз и нужен ранее полученный Flash ID (98DE9493 7657). Зайдите в папку UFD_ALL_DBF и найдите в ней по названию файла базы данных формата DBF, соответствующий маркировке контроллера.
В нашем примере это SM3257ENBA, а если точнее — 3257ENBA, поскольку префикс SM отбрасывается. Открыв этот файл Блокнотом, вы увидите массив данных, в котором вам нужно отыскать всего одну строку — Flash ID, немного её отредактировав. А теперь внимание.

• 98DE9493 7657 — так выглядит шестнадцатеричный код Flash ID, полученный утилитой Flash Drive Information Extractor.
• 98 DE 94 93 76 57 — а вот так выглядит тот же Flash ID, только в «правильном» формате, то есть мы просто отделили пробелом байты (каждые два символа) от другого.

Это второе значение нужно забить в поиск Блокнота или другого текстового редактора с открытой в нём базой прошивки. Если строка будет найдена, значит выбранная утилита подходит для перепрошиваемой флешки.
Убедившись в правильности выбора, запустите утилиту, а затем подключите к компьютеру и саму флешку. На то, что накопитель опознан, укажет отмеченный синим маркером квадратик с буквой флешки, текст «Ready» и прочая служебная информация в поле порта. Чтобы запустить процедуру перепрошивки, нажмите кнопку «Start». Если всё пройдёт благополучно, вы получите такую картину с зелёным статусом «OK».
К сожалению, для нашей флешки с контроллером SM3257ENBA утилита SMI MPTool не подошла, хотя и прошивка была выбрана правильно. В результате утилита выдала ошибку «FALL». Да, предлагая использовать Dyna Mass Storage для нашей флешки, администраторы ресурса оказались правы.

Dyna Mass Storage Production Tool

Процедура прошивки в этой утилите очень похожа. Точно так же по названию контроллера вам нужно найти на странице архив с последней версией утилиты, точно так же необходимо отыскать в файле базы данных DBF строку Flash ID, переведённую в корректный шестнадцатеричный код как было показано выше.
Если совпадение найдено, запустите утилиту и вставьте в порт флешку. Если вдруг накопитель не определиться утилитой, нажмите кнопку «Scan». После того как флешка будет опознана, на что укажут данные в одной из ячеек, нажмите «Setting», а когда появится диалоговое окошко ввода пароля, нажмите «OK» (пароль пустой) и укажите путь к файлу NDefault.INI в папке с исполняемым файлом Dyna Mass Storage. Этот этап (указание пути к INI- файлу) можно пропустить, так как утилита обычно автоматически подхватывает конфигурационный файл, просто убедитесь, что путь к нему указан в заголовке программы. В открывшемся окне параметров выставляем указанные на скриншоте настройки и жмём «Save».
Единственное, на что вам нужно обратить внимание, это поле «Enable ECC Threshold (Bits)», изменение значения которого может быть недоступным (Auto Set ECC). Это нормально, в противном случае перейдите на страницу www.usbdev.ru/articles/a_smi/ecc-smi и найдите значение ECC для вашего контроллера. Всё готово, жмём кнопку «Start» и ждём завершение операции перепрошивки. Она проходит в несколько этапов, продолжительность зависит от объёма и типа памяти. У нас перепрошивка флешки объёмом 7,5 Гб заняла 30 минут, и на этот раз всё прошло успешно.
(24-28)

Ну вот, теперь вы знаете, как самостоятельно перепрошить флешку, будьте только внимательными и проверяйте каждый свой шаг. Ошибка не означает, что накопитель выйдет из строя окончательно, по крайней мере, повторная прошивка нашей флешки благополучно её реанимировала. И напоследок ещё один важный момент. Наверняка у кого-то из наших читателей возникнет вопрос, а почему мы не использовали для поиска производственный утилиты рекомендуемые на других сайтах PID и VID, разве это не было бы удобнее и быстрее? Быстрее, так это верно, но вероятность допустить ошибку в подборе спецутилиты будет значительно выше. Так что если подходить к решению проблемы, то делать это нужно со всей ответственностью и не побоимся этого слова, педантичностью.

Как блокируют флешки и как обходят эту защиту : Операционные системы и программное обеспечение

А какие сущес­тву­ют методы защиты от вре­донос­ных фле­шек и как их мож­но обой­ти? Сей­час раз­берем­ся!

В этой статье мы рас­смот­рим, как устро­ена защита USB (Mass Storage Class — Removable Media) и как обма­нуть сис­темы огра­ниче­ния по белому спис­ку устрой­ств с помощью соз­дания кло­нов. Зву­чит инте­рес­но? Хочешь натянуть сов­ремен­ные средс­тва защиты? Тог­да доб­ро пожало­вать в мир увле­катель­ных экспе­римен­тов!
КАК БЛОКИРУЮТ ФЛЕШКИ

За­чем их бло­киро­вать? Что­бы ты не занес в ИТ‑инфраструк­туру ком­пании вирус‑шиф­роваль­щик, не тас­кал информа­цию домой и не при­носил игрушки в офис. В раз­ных кон­торах адми­ны и безопас­ники дей­ству­ют по‑раз­ному. В самых печаль­ных слу­чаях пор­ты физичес­ки отклю­чают­ся, залива­ются эпок­сидкой или опе­чаты­вают­ся. В слу­чаях поп­роще пор­ты отклю­чают­ся через BIOS/UEFI (что‑то вро­де USB Controller = Disabled).

Ес­ли адми­нам лень жал­ко ломать желез­ку, на помощь при­ходят нас­трой­ки реес­тра и груп­повые полити­ки вин­ды. Нап­ример, для пол­ной бло­киров­ки USB-носите­лей открой вот эту вет­ку реес­тра:

Ес­ли ты выс­тавишь у парамет­ра Start зна­чение 4, твои флеш­ки перес­танут под­клю­чать­ся. В груп­повых полити­ках (gpedit.msc) обыч­но смот­рят в сто­рону оснас­тки «Кон­фигура­ции компь­юте­ра → Адми­нис­тра­тив­ные шаб­лоны → Сис­тема → Дос­туп к съем­ным запоми­нающим устрой­ствам».

Су­щес­тву­ют ли спо­собы более изыс­канно и кра­сиво огра­ничить под­клю­чение нежела­тель­ных носите­лей к ком­пу? Ком­пании побога­че исполь­зуют допол­нитель­ные средс­тва защиты информа­ции (СЗИ) — тот же KAV (и иные анти­виру­сы), DLP-сис­темы, Secret Net (СЗИ от НСД) и про­чие. Кто‑то даже уста­нав­лива­ет драй­вер для про­вер­ки носите­ля по белому спис­ку, кто‑то про­веря­ет устрой­ство в момент его мон­тирова­ния.

Нас­трой­ки СЗИ могут зап­ретить под­клю­чение вооб­ще всех устрой­ств, толь­ко устрой­ств из чер­ного спис­ка или раз­решить под­клю­чение девай­сов из белого спис­ка. На пос­леднем вари­анте мы с тобой и оста­новим­ся попод­робнее.

А КАК ИХ РАЗЛИЧАЮТ?

Как отли­чить одну флеш­ку от дру­гой? Понят­ное дело, что у фле­шек есть про­изво­дитель, объ­ем, дру­гие парамет­ры. Но обыч­но про­изво­дите­ли снаб­жают каж­дую флеш­ку уни­каль­ным серий­ным номером, про­писан­ным в ее про­шив­ке.

Что­бы пос­мотреть его в вин­де, можешь исполь­зовать такую коман­ду Windows Management Instrumentation — WMIC (пред­варитель­но под­клю­чив флеш­ку):

По­лучен­ный DeviceID содер­жит:

VID — Vendor ID, иден­тифика­тор про­изво­дите­ля. 13FE — Kingston Technology Company Inc.;
PID — Product ID, иден­тифика­тор изде­лия. 4200 — Platinum USB drive mini;
Serial — уни­каль­ный серий­ный номер флеш­ки 070867948D560839.

VID и PID исполь­зуют­ся опе­раци­онкой для поис­ка дров. Пол­ный спи­сок мож­но пос­мотреть, нап­ример, на сай­те Linux USB. [ ➜ ]

По DeviceID флеш­ка про­писы­вает­ся в реес­тре:

Так­же ты можешь получить всю эту информа­цию с помощью прог­раммы USBDeview. [ ➜ ]

В некото­рых, осо­бо изыс­канных и нез­доровых слу­чаях в качес­тве иден­тифика­тора флеш­ки при­меня­ется Volume Serial Number (VSN, он же так называ­емый серий­ный номер тома), который мож­но получить коман­дой vol или dir.

По­чему исполь­зовать VSN (в Linux он называ­ется UUID) для иден­тифика­ции фле­шек — идея не очень? Дело в том, что дан­ные мет­ки иден­тифици­руют логичес­кие тома фай­ловой сис­темы. Что­бы изме­нить VSN слу­чай­ным обра­зом, дос­таточ­но отформа­тиро­вать раз­дел. Понят­но, что для жес­тких дис­ков это про­цеду­ра срав­нитель­но ред­кая, но флеш­ки фор­матиру­ют доволь­но‑таки час­то.

Что делать с ноунеймом

Для китай­ских noname-фле­шек, про­изво­дите­ли которых «кла­дут» на соот­ветс­твие девай­са все­воз­можным рекомен­даци­ям и стан­дартам, такой серий­ник будет менять­ся в зависи­мос­ти от USB-пор­та, в который ты под­клю­чил устрой­ство, и, разуме­ется, положе­ния звезд на небе. Если твою флеш­ку безопас­ники про­пишут в белый спи­сок толь­ко на одном пор­те, то на дру­гом ты ее исполь­зовать не смо­жешь.

Вот при­мер такой флеш­ки:

Как ты видишь, при изме­нении пор­та в серий­нике меня­ется номер это­го пор­та (&2 в кон­це прев­ратилось в &1). Так что нуж­но или добав­лять в спи­сок номер такой флеш­ки на всех пор­тах, или исполь­зовать толь­ко выделен­ный порт для ее под­клю­чения.

В некото­рых СЗИ исполь­зуют иные свой­ства фле­шек. Все дос­тупные свой­ства ты можешь прос­мотреть, щел­кнув на знач­ке флеш­ки пра­вой кла­вишей мыши и выб­рав в кон­текс­тном меню «Свой­ства → Обо­рудо­вание → Све­дения». В выпада­ющем спис­ке наибо­лее полез­ные све­дения содер­жатся в стро­ках «Понят­ное имя», «Путь к экзем­пля­ру устрой­ства» и «Родитель» (тот же DeviceID).

У китай­ских фле­шек эти парамет­ры меня­ются, как генера­тор слу­чай­ных чисел. Нап­ример, путь к экзем­пля­ру устрой­ства для пер­вого и вто­рого USB-пор­та выг­лядит так:

Здесь:
JETFLASH — про­изво­дитель;
TRANSCEND_8GB — наз­вание устрой­ства;
1100 — номер ревизии;
BBPIX7EB2VMBFI48 — серий­ный номер.

У раз­ных фле­шек из одной пар­тии менять­ся будет толь­ко серий­ник.

Да­вай пос­мотрим, какими спо­соба­ми адми­ны могут выявить, что к сис­теме под­клю­чили флеш­ку. В Windows име­ется целый пул средств для отсле­жива­ния под­клю­чаемых носите­лей. Если хочешь поковы­рять­ся сам — смот­ри вот эти две вет­ки реес­тра:

Там хра­нит­ся спи­сок иден­тифика­торов под­клю­чаемых устрой­ств, при этом информа­ция в этих вет­вях реес­тра не затира­ется стан­дар­тны­ми про­цеду­рами в пла­ниров­щике задач вин­ды, то есть дан­ные хра­нят­ся сколь угод­но дол­го.

Ес­ли ты пред­почита­ешь готовые решения, то к тво­им услу­гам клас­сичес­кий USBLogView [ ➜ ] , который в реаль­ном вре­мени регис­три­рует под­клю­чение и отклю­чение флеш­ки. В форен­зике для ком­плексно­го ана­лиза под­клю­чений рекомен­дуем пос­мотреть в сто­рону USB Detective [ ➜ ] и USB Forensic Tracker. [ ➜ ]

USB Detective извле­кает информа­цию из реес­тра, логов, иных источни­ков, а так­же может сни­мать информа­цию с Live-сис­темы (в вер­сии Pro), при этом выпол­няя кор­реляцию и верифи­кацию дан­ных.

USB Forensic Tracker извле­кает все арте­фак­ты под­клю­чений незави­симо, поэто­му для каж­дого источни­ка дан­ных ты име­ешь свою таб­лицу под­клю­чений USB-устрой­ств (кор­реляции, к сожале­нию, он не дела­ет).

Нап­ример, прос­матри­вая дан­ные по нашей китай­ской флеш­ке, мы выяс­нили, что ее отоб­ража­емый серий­ник на пер­вом пор­те — 388e987, на вто­ром — 3с69e2с9. Пос­ле фор­матиро­вания они ста­ли 4247e754 и 966cde2 соот­ветс­твен­но.

Во внеш­них СЗИ име­ются фун­кции прос­мотра и бло­киро­вания под­клю­чен­ных фле­шек в реаль­ном вре­мени или на осно­ве ранее под­клю­чен­ных устрой­ств.

ПРАКТИЧЕСКИЙ ПОДХОД К СБИТИЮ ПАРАМЕТРОВ ФЛЕШЕК

Часть 1. VSN (UUID)

Ес­ли тебе повез­ло и в тво­ей орга­низа­ции бло­киру­ют флеш­ки через VSN/UUID, то сущес­тву­ет мас­са год­ных вари­антов. Все пред­став­ленные ниже кей­сы не изме­няют основные парамет­ры флеш­ки, такие как серий­ный номер и информа­ция о модели. Одна­ко пом­ни, что иног­да VSN при­меня­ется при лицен­зирова­нии ПО и изме­нение VSN может пов­лиять на его работос­пособ­ность. Зато, научив­шись менять VSN, ты смо­жешь давать вто­рую жизнь лицен­зион­ным про­гам, которые жалу­ются на сме­ну жес­тких дис­ков и не хотят работать.

Ма­нипу­ляции пред­став­лены для демонс­тра­ции. При­меняя их, будь осто­рожен и вни­мате­лен, пос­коль­ку при некор­рек­тном под­боре команд, прог­рамм, про­шивок ты рис­куешь окир­пичить флеш­ку, за что мы, конеч­но, ответс­твен­ности не несем. Не сто­ит упо­минать, что на тес­тиру­емых флеш­ках не сле­дует дер­жать цен­ную инфу.

Вариант 1. Форматирование

Дан­ный вари­ант исполь­зует­ся, ког­да акти­вен толь­ко чер­ный спи­сок фле­шек, пос­коль­ку фор­матиро­вание меня­ет иден­тифика­тор раз­дела. Одна­ко задать кон­крет­ный иден­тифика­тор в дан­ном слу­чае не получит­ся.

Нап­ример, флеш­ка с FAT32 до фор­матиро­вания име­ет VSN 4652-F858, а пос­ле быс­тро­го фор­матиро­вания — 76DA-6C78. Для NTFS ситу­ация в целом ана­логич­на.

Как ты видишь, вари­ант пре­дель­но прос­той, но совер­шенно некон­тро­лиру­емый. Это нам как‑то не очень под­ходит, поп­робу­ем менять парамет­ры на избран­ные нами зна­чения.

Вариант 2. Смена VSN через утилиты

Су­щес­тву­ют готовые ути­литы для сме­ны VSN, нап­ример VolumeID [ ➜ ] от ком­пании Sysinternals или более при­ятная на вид гра­фичес­кая ути­лита Volume Serial Number Changer. [ ➜ ] Во вто­ром слу­чае нуж­но прос­то запус­тить ути­литу, выб­рать мет­ку дис­ка, вбить новый иден­тифика­тор, нажать Change Serial number, вынуть‑вста­вить флеш­ку, и все готово.

Вариант 3. Сделай сам

Ты хочешь пол­ностью поз­нать дзен фле­шек? Не воп­рос. Пред­варитель­но опре­делись с фай­ловой сис­темой. Открой любой HEX-редак­тор и перета­щи туда зна­чок флеш­ки из про­вод­ника. Для FAT32 VSN находит­ся по сме­щению 0x43, для NTFS — на 0x48.

На­шел­ся серий­ник 6666-6666. Что ж, испра­вим его и сох­раним резуль­тат. Пом­ни, что порядок чте­ния бай­тов — спра­ва налево (little endian).

Для FAT32 ситу­ация пол­ностью ана­логич­на.

Итак, теперь ты уме­ешь менять VSN (UUID). Но для по‑нас­тояще­му серь­езных вещей и соз­дания поч­ти пол­ноцен­ного кло­на нуж­но еще нем­ного углу­бить­ся в тему.

Часть 2. VID, PID, Serial

Что­бы менять мак­сималь­ное количес­тво парамет­ров, тре­бует­ся переп­рошить кон­трол­лер флеш­ки. Про­цеду­ра эта срав­нитель­но нес­ложная, но опас­ная — в слу­чае ошиб­ки ты рис­куешь сде­лать флеш­ку нерабо­тос­пособ­ной (одна­ко ошиб­ка чаще все­го воз­ника­ет при неудач­ном выборе про­шив­ки или про­шиваль­щика).

Пред­ста­вим, что у тебя есть исправ­ная флеш­ка (которая работа­ет в офи­се без проб­лем), а так­же ты при­обрел дру­гую флеш­ку — потен­циаль­ный клон. Если ты купишь флеш­ку точ­но той же модели, то при некото­рых обсто­ятель­ствах смо­жешь обой­ти СЗИ, в которых идет про­вер­ка толь­ко по VID и PID.

На прак­тике луч­ше най­ти флеш­ки, которые лег­че все­го переп­рошивать, нап­ример фир­мы Silicon Power или Transcend с USB 3.0 — в них час­то исполь­зует­ся SMI-кон­трол­лер. Хотя в целом тебе могут попасть­ся флеш­ки с кон­трол­лерами AlcorMP, Phison и дру­гие. Для них тоже есть про­шив­ки.

Об­щий алго­ритм про­шив­ки девай­са сле­дующий:

— Вы­ясни тип иден­тифика­тора, который исполь­зует­ся для опре­деле­ния флеш­ки в СЗИ, или исполь­зуемые сос­тавля­ющие на осно­ве дан­ных флеш­ки (опци­ональ­но), запиши их для пос­леду­ющей под­делки.
— Оп­редели кон­трол­лер флеш­ки.
— Под­бери ути­литу для про­шив­ки, под­ходящую под кон­крет­ную вер­сию кон­трол­лера.
— В про­шиваль­щике задай необ­ходимые парамет­ры, иден­тичные ори­гиналь­ной флеш­ке.
— Про­шей флеш­ку‑клон и про­верь ее работу. В слу­чае неудач­ной про­шив­ки — пов­тори шаги, начиная со вто­рого. Если флеш­ка окир­пичилась, пос­тупай ана­логич­но.

Шаг 1. Так слу­чилось, что на пер­вой про­тес­тирован­ной нами машине сто­ял анти­вирус Comodo с воз­можностью кон­тро­ля устрой­ств. Недол­го думая, вклю­чаем бло­киров­ку для USB и добав­ляем флеш­ку‑ори­гинал в исклю­чение. Анти­вирь любез­но показы­вает нам исполь­зуемый иден­тифика­тор флеш­ки.

В свой­ствах обо­рудо­вания находим, что эта стро­ка соот­ветс­тву­ет опции «Путь к экзем­пля­ру устрой­ства». Запишем иден­тифика­тор как целевое зна­чение, которо­му наша флеш­ка‑фейк дол­жна соот­ветс­тво­вать:

На вся­кий слу­чай запом­ним и DeviceID:

Бы­вает, СЗИ нап­рямую не показы­вают иден­тифика­тор (уга­дай почему), а опре­деля­ют толь­ко некото­рые свой­ства под­клю­чен­ного устрой­ства. В таких слу­чаях иден­тифика­тор обыч­но скла­дыва­ется из видимых полей и свой­ств. Для нас это неп­ринци­пиаль­но, пос­коль­ку, под­гоняя дан­ные фей­ка под ори­гинал, мы задей­ству­ем те же самые дан­ные и фор­миру­ем такой же иден­тифика­тор.

Шаг 2. Для опре­деле­ния кон­трол­лера флеш­ки‑фей­ка вос­поль­зуем­ся про­гой ChipGenius (ее мож­но ска­чать с сай­та USBDev. [ ➜ ] Кста­ти, рекомен­дуем сайт как наибо­лее полез­ный рус­ско­языч­ный ресурс по про­шив­ке фле­шек. Мож­но вос­поль­зовать­ся ана­логом — Flash Drive Information Extractor. [ ➜ ] Интерфейс прог­рамм прос­той — вста­вил флеш­ку, получил резуль­тат — см. иллюс­тра­цию ниже.

Срав­ни с выводом ChipGenius для нашего будуще­го фей­ка:

DeviceID
USB\VID_090C&PID_1000\CCYYMMDDHHMMSS000000
Description: [H:]Запоми­нающее устрой­ство для USB(SMI USB DISK)
Device Type: Mass Storage Device
Protocal Version: USB 2.00
Current Speed: High Speed
Max Current: 500mA
USB Device ID: VID = 090C PID = 1000
Serial Number: CCYYMMDDHHMMSS000000
Device Vendor: SMI Corporation
Device Name: USB DISK
Device Revision: 1100
Manufacturer: SMI
Product Model: USB DISK
Product Revision: 1100
Controller Vendor: SMI
Controller Part-Number: SM3257ENBA — ISP 131128-AA-
Flash ID code: 98DE8493 — KIOXIA TC58TEG6DCJBA00 — 1CE/Single Channel [MLC-16K] → Total Capacity = 8GB

Итак, мы видим, что у нас кон­трол­лер семей­ства SMI (Silicon Motion) с номером SM3257ENBA. Теперь най­дем про­шиваль­щик для него!

Шаг 3. Хотя ChipGenius даже дает ссыл­ку для про­шиваль­щика, на сай­те по этой ссыл­ке все на китай­ском, поэто­му про­ще ска­чать его с UsbDev. При этом обя­затель­но в вер­сии, под­держи­вающей наш кон­трол­лер SM3257ENBA. Для дан­ного кон­трол­лера исполь­зуют­ся про­шиваль­щики SMI MPTool [ ➜ ] и Dyna Mass Storage Production Tool. [ ➜ ] Нам боль­ше по душе вто­рая (работа­ет дол­го, но качес­твен­но и поч­ти со все­ми под­видами дан­ных кон­трол­леров). Находим нуж­ную вер­сию, кача­ем Dyna Mass Storage Production Tool, встав­ляем флеш­ку‑фейк, запус­каем про­гу.

Шаг 4. Не пугай­ся, не все так слож­но. Все про­шиваль­щики име­ют прак­тичес­ки иден­тичный набор парамет­ров, поэто­му общие прин­ципы и изме­няемые парамет­ры у всех схо­жи, незави­симо от брен­да и модели кон­трол­лера. Убе­дись, что флеш­ка появи­лась в прог­рамме.

В пра­вой час­ти жми над­пись Settings, ввод пароля про­пус­каем нажати­ем Enter (в некото­рых ути­литах он тоже есть, обыч­но лег­ко гуг­лится на форумах), в качес­тве дефол­тно­го кон­фига ука­зыва­ем файл в кор­не катало­га про­шиваль­щика — NDefault.INI.

Кста­ти, все эти опе­рации могут вос­ста­новить твой любимый неис­прав­ный USB-гад­жет путем переп­рошив­ки с дефол­тны­ми зна­чени­ями, глав­ное — не накося­чить с опре­деле­нием прог­раммы и кон­трол­лера. Ну а мы про­дол­жаем. В появив­шемся окне перехо­дим на вклад­ку DeviceConfig.

Ме­нять здесь нуж­но сов­сем нем­ного. В поле SN Method выбира­ем Static SN (ина­че наш серий­ник будет пус­той, как в noname-флеш­ках). В дан­ном слу­чае мы зада­ем стой­кий, как швей­цар­ский банк, серий­ник, который не будет менять­ся от сис­темы к сис­теме.

В сек­ции USB чуть ниже выс­тавля­ем парамет­ры, как у флеш­ки‑ори­гина­ла:

VID → 13FE, PID → 4200, bdcDevice (номер ревизии) → PMAP

Имя про­изво­дите­ля и про­дук­та в нашем кей­се не исполь­зует­ся, можем не менять. Одна­ко в некото­рых мажор­ных СЗИ они так­же при­меня­ются для фор­мирова­ния сиг­натуры устрой­ства. Если ты вооб­ще не зна­ешь, какие парамет­ры и куда вво­дить, то рекомен­дуем пов­торить шаги с пер­вого и вот до это­го мес­та на флеш­ке‑ори­гина­ле, ско­пиро­вать все парамет­ры в про­шиваль­щик флеш­ки‑фей­ка и про­дол­жить чте­ние. Ори­гинал про­шивать не нуж­но.

В поля SN Begin No., SN End No. и SN Mask забива­ем серий­ник флеш­ки‑ори­гина­ла: 070867948D560839.

Да­вай еще раз пос­мотрим на целевую стро­ку:

Мы уже перенес­ли номер ревизии (PMAP) и серий­ник — циф­ровую часть в кон­це.

В сек­ции Inquiry очи­щаем поле Vendor, в поле Product про­писы­ваем USB DISK 2.0. VID и PID мы поменя­ли, что­бы серий­ный номер (Device ID) был так­же иден­тичен ори­гина­лу. В пра­вом вер­хнем углу жмем Save и в глав­ном окне нажима­ем Start. Начина­ется переп­рошив­ка флеш­ки.

В нашем слу­чае глу­бокая переп­рошив­ка занима­ет 35 минут. А при исполь­зовании SMI MPTool [ ➜ ] мож­но задей­ство­вать более быс­трый спо­соб переп­рошив­ки, ког­да с кон­трол­лера счи­тыва­ется CID-регистр (Card Identification; откры­вает­ся через меню Debug → Read CID\Write CID), в нем по ана­логии с редак­тирова­нием в HEX вруч­ную про­писы­вают­ся нуж­ные дан­ные (но опять же нуж­но уста­новить кон­троль­ные бай­ты дли­ны, не забывать вби­вать зна­чения спра­ва налево и так далее, что неудоб­но).

Шаг 5. Пос­ле успешной (мы наде­емся) переп­рошив­ки оста­ется про­верить нашу фей­ковую флеш­ку и узнать, нас­коль­ко она хороша. Пос­мотрим детали с помощью ChipGenius и выделим отли­чия от ори­гина­ла:

Description: [H:]Запоми­нающее устрой­ство для USB(USB DISK 2.0)
Device Type: Mass Storage Device
Protocal Version: USB 2.00
Current Speed: High Speed
Max Current: 500mA (у ори­гина­ла — 200 mA, мож­но поменять через свой­ство USB Power — см. позап­рошлый скрин, но при заниже­нии силы тока устрой­ство может отка­зать­ся работать)
USB Device ID: VID = 13FE PID = 4200
Serial Number: 070867948D560839
Device Vendor: SMI Corporation (у ори­гина­ла отсутс­тву­ет, меня­ется через панель USB → Vendor String)
Device Name: USB DISK (у ори­гина­ла USB DISK 2.0, меня­ется через панель USB → Product String)
Device Revision: 4200 (у ори­гина­ла 0100, дан­ный параметр не изме­няет­ся)
Product Model: USB DISK 2.0
Product Revision: PMAP
. (осталь­ное по кон­трол­леру и так раз­лича­ется).

Те­перь срав­ним DeviceID флеш­ки‑ори­гина­ла, фей­ка до кло­ниро­вания и фей­ка пос­ле про­шив­ки.

От­крыв свой­ства обо­рудо­вания, про­веря­ем путь к экзем­пля­ру‑кло­ну:

Те­перь встав­ляем фейк в тес­товую машину с вклю­чен­ным белым спис­ком для флеш­ки‑ори­гина­ла.

Сра­бота­ло! Флеш­ка откры­вает­ся и работа­ет. Про­буем под­клю­чить ори­гиналь­ную флеш­ку вмес­те с фей­ком — облом, про­исхо­дит кон­фликт, поэто­му работа­ет толь­ко пер­вая вот­кну­тая флеш­ка. Так что под­клю­чай их по одной.

Для пол­ного соот­ветс­твия копии ори­гина­лу рекомен­дуем изме­нить осталь­ные парамет­ры, отформа­тиро­вать фейк, дать ему мет­ку ори­гина­ла. И не забудь изме­нить VSN — как это сде­лать, ты уже зна­ешь.

Да­вай про­верим фейк на надеж­ном анти­виру­се — нап­ример, Kaspersky Endpoint Security 10.

Смот­рим, что исполь­зует­ся в качес­тве иден­тифика­тора флеш­ки‑ори­гина­ла.

Это путь к экзем­пля­ру устрой­ства, добав­ляем его в белый спи­сок, про­веря­ем на какой‑нибудь левой флеш­ке.

И вот тут мы сло­вили хох­му — флеш­ка отоб­ража­ется в про­вод­нике (осо­бен­ность «Кош­мар­ско­го»), про­веря­ется анти­виру­сом, но при попыт­ке обра­тить­ся к ней получа­ем вот такое окно.

Но флеш­ка‑фейк пред­ска­зуемо работа­ет без каких‑либо проб­лем.

Схо­жим обра­зом мы про­тес­тирова­ли ряд ком­мерчес­ких DLP-сис­тем, СЗИ под Linux и ниг­де не встре­тили ни отпо­ра, ни попыток вос­пре­пятс­тво­вать ата­ке кло­нов.

И тут статью мож­но было бы закон­чить, но.

Часть 3. Извращения

Со­вер­шенно слу­чай­но ока­залось, что в зависи­мос­ти от СЗИ мож­но исполь­зовать и допол­нитель­ные методы обхо­да USB-бло­киро­вок.f

Пу­тем фор­матиро­вания флеш­ку мож­но прев­ратить в клас­сичес­кую дис­кету с воз­можностью чте­ния и записи, объ­емом все­го в 1,38 Мбайт. Хва­тит, что­бы потихонь­ку перета­щить на работу игрушку? Раз­ве что по час­тям в нес­коль­ко заходов. Вот как это сде­лать. Берем новую флеш­ку, дей­ству­ем по зна­комо­му алго­рит­му. В этот раз нам попалась флеш­ка Transcend 8 Gb USB 3.0 с кон­трол­лером SMI SM3267AB (возь­мем про­шиваль­щик для него — SMI MPTool V2.5.51 v7 P0920v1). Итак, про­шиваль­щик, окно Settings, вклад­ка Multi-Lun Settings.

Ус­танав­лива­ем гал­ки на Floppy и фор­матиро­вании, про­шива­ем. Резуль­тат выг­лядит при­мер­но так.

Floppy-дис­ковод работа­ет, зачет :).

Про­верим на Кас­пере. По‑преж­нему бло­киру­ется USB для любых фле­шек, кро­ме доверен­ных, но «дис­ковод» успешно под­клю­чает­ся, мож­но читать‑писать информа­цию. Дос­тупа к фле­шеч­ному раз­делу по‑преж­нему не пред­видит­ся.

Ес­ли срав­нивать информа­цию о Floppy в Кас­пер­ском с информа­цией по USB, то раз­ница зак­люча­ется толь­ко в типе устрой­ства (Дис­кеты vs Съем­ные дис­ки).

При вклю­чении бло­киров­ки дис­кет дан­ный метод, конеч­но, не сра­бота­ет.

Ана­логич­ный под­ход, но теперь поп­робу­ем соз­дать на флеш­ке CD-раз­дел и пред­варитель­но записать на него образ из ISO-фай­ла. Недос­таток оче­виден — мож­но толь­ко счи­тывать инфу с CD-раз­дела, записать на флеш­ку фай­лы ты уже не смо­жешь. Но запус­тить уста­нов­щик любимой игру­ли — без проб­лем. Берем ту же самую флеш­ку на кон­трол­лере SM3267AB и через SMI про­шива­ем CD-раз­дел. В раз­деле Multi-lun Setting выс­тавля­ем галоч­ку Static CDROM Size и ука­зыва­ем раз­мер под твой ISO, который мы будем туда заливать.

На вклад­ке Main Flow Setting око­ло гал­ки с Make Auto Run зада­ем путь к ISO-обра­зу, нап­ример с Kali Linux — или чем‑нибудь дру­гим. Пос­ле про­шив­ки флеш­ка отоб­ража­ется в про­вод­нике как отдель­ный флеш‑накопи­тель и CD-при­вод. С CD-раз­дела мож­но читать, копиро­вать фай­лы — все как при клас­сичес­ком мон­тирова­нии ISO-обра­за.

Что же на это ска­жут наши бло­киров­щики? В Кас­пер­ском и дру­гих ком­мерчес­ких решени­ях ситу­ация пол­ностью ана­логич­на слу­чаю с дис­кетами: CD-раз­дел успешно под­клю­чен и готов к исполь­зованию.

Есть, кста­ти, готовые флеш­ки, которые содер­жат CD-раз­дел с ути­лита­ми для под­клю­чения «зак­рытого» раз­дела — как, нап­ример, в Jet Flash Transcend 620. Выг­лядит он при­мер­но как CD-раз­дел с прог­рамму­линой + 2 USB-раз­дела — откры­тый и пока зак­рытый, до вво­да пароля. Раз­мер при­ват­ной области нас­тра­ивает­ся.

Так вот, при работе белого спис­ка по USB-накопи­телям в Кас­пер­ском (если CD-при­вод не заб­локиро­ван) такая фле­ха впол­не себе мон­тиру­ет CD-раз­дел — мож­но и запус­кать, и копиро­вать про­ги с него. При попыт­ке смон­тировать защищен­ный раз­дел — отказ в дос­тупе. Что­бы спас­тись от этой напас­ти, нуж­но заб­локиро­вать CD-при­вод, хотя в родите­ле устрой­ства ука­зан все тот же ста­рый доб­рый USB-иден­тифика­тор, что стран­но. В Comodo воз­можность мон­тирова­ния такого недове­рен­ного носите­ля исклю­чена в прин­ципе. Почему? Воп­рос к реали­зации СЗИ и механиз­мам орга­низа­ции белых спис­ков.

В статье мы рас­смот­рели вари­анты фор­мирова­ния мак­сималь­но прав­доподоб­ного кло­на флеш­ки, который поз­воля­ет обхо­дить все­воз­можные бло­киров­ки. В зависи­мос­ти от сте­пени заморо­чен­ности, мож­но обой­ти поч­ти любой белый спи­сок. Как нам видит­ся, для гаран­тирован­ной защиты от под­мены USB мож­но было бы ука­зывать в СЗИ кон­крет­ные модели фле­шек и заносить в белый спи­сок хеш от CID области, от ком­бинации VID + PID + Serial или добав­лять хеш вывода ChipGenius (ну либо его час­ти). Неп­лохо было бы добав­лять в иден­тифика­цион­ную информа­цию дан­ные о модели кон­трол­лера девай­са.

В свя­зи с тем что мы зна­ем пароч­ку опе­раци­онных сис­тем, которые в качес­тве зна­чений для белого спис­ка исполь­зуют наз­вание про­изво­дите­ля или иные подоб­ные парамет­ры, было бы здо­рово на уров­не ОС кон­тро­лиро­вать под­клю­чаемые носите­ли на пред­мет их под­мены или несо­ответс­твия обыч­ному (ожи­даемо­му) поведе­нию (нап­ример, мож­но срав­нивать VSN/UUID и ловить отли­чия при оди­нако­вом DeviceID).

Бе­зопас­никам мы рекомен­дуем пол­ностью бло­киро­вать под­клю­чение дис­кет и дис­ков в ОС, что­бы исклю­чить опи­сан­ные вари­анты обхо­да защиты. Будем рады получить обратную связь в ком­мента­риях. Может быть, у читате­лей най­дут­ся при­коль­ные решения для защиты от кло­нов или ана­лиза ано­малий при под­клю­чении устрой­ств.

null21

Самое первое, что необходимо сделать, это сохранить инфу о текущем состоянии флешки, тогда у нас будет объективный критерий того, стало ли лучше/хуже, чем было изначально и насколько.

В первую очередь это скоростные характеристики. Я пользуюсь старой-доброй тестилкой скорости h2test, вы же можете пользоваться тем инструментом, которые более подходит вам.

Вполне достойный результат, кстати. Для полноты чувства самоутверждения можно прогнать несколько раз, но практической пользы немного, все равно флешка идет под прошивку.
Далее необходимо получить максимум информации о потрохах флешки. Можно пользоваться всеядными Гениусами и Экстракторами. Но Гениусом я пользуюсь для определения контроллера, не более, а Экстрактором не пользуюсь совсем. Как правило, производственные утилиты позволяют получать более полную информацию о флешке.
Выбираем шило. Знаменитый ресурс usbdev.ru говорит нам о том, сортинг-утилиты для SMI-контроллеров – это семейство Dyna (https://www.usbdev.ru/files/smi/dynamptool/). Находим свой контроллер и выбираем что-то свежее. Я выбрал версию Dyna Mass Storage Production Tool v18.01.25.21 R0125 [SM3259AA], не самую свежую и не самую древнюю.
Утилита определила флешку и предоставила возможность познакомиться с её характеристиками (кнопка с меткой тома диска -> строка «Status»)

Нас будет интересовать FID (983A98A37651) и информация о последней прошивке (мало ли)
Далее проверяем совместимость выбранной версии шила, контроллера и FID. В разных утилитах эта совместимость реализуется по разному, в нашем случае это xls-файл.

В настройках ничего криминального (за исключением того, что ECC выбрать нельзя, доступно значение только Auto), попробуем запуститься с настройками по умолчанию (основные параметры указываются в верхней части формы)

И сразу нежданчик! Во-первых, я как пользователь, не останавливал прошивку через 4 минуты с начала (для меня это утилита новая, что она делает я не знаю, и надо быть полным кретином, чтобы останавливать процесс прошивки насильно для монолита).
И вторя неожиданность (первая – отсутствие выбора ECC в настройках) – нет никакого лога, который бы позволил понять, что произошло.

Очевидные манипуляции с содержимым ini-файлов и изменение уровня форматирования картину не меняли. Ошибка оставалась (точнее, название ошибки менялось, типа «Format fail» и проч, после которых ОС флешку либо не видела, либо не было доступа к ней), вместо лога – набор малопонятной инфы. Использование других версий тоже не помогало. Очень интересно, но что делать?

Мой опыт говорит, что после 3 попыток подбора утилит наугад, нужно пытаться прошиться последней успешной прошивкой и уже плясать от неё. Благо инфа о прошивке у нас есть (скрин «Status»). Ок, скачиваем её

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

Ошибка при форматировании FAT не так страшна. Форматирование можно сделать и в ОС. В этот раз форматирование прошло успешно, в отличие от предыдущих. Это хороший повод проверить флешку на работоспособность.

По сравнению с первоначальным результатом чуть-чуть изменился объем. Но самое важное, мы убедились в работоспособности утилиты. Пора попробовать низкоуровневое форматирование и выберем максимальное значение ECC

3 часа форматирования. В принципе флешка видна и доступна в ОС, попробуем обойтись без форматирования в ОС (это промежуточный этап эксперимента, для финального после таких ошибок все-таки хорошо пройтись в ОС быстрым форматированием, чтобы гарантированно создались и проинициализировались все служебные структуры FAT)

Размер вернулся к 15Г, однако скорости записи кратно упала, по сравнению с начальными значениями.
По крайней мере утилита работает, и можно немного погонять её с разными значениями ECC. Что мы и сделаем в следующей части

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *