В данном руководстве пользователя, хочу вас познакомить с азами ремонта в производственном прошивальщике Dyna Mass Storage Production Tool. В дальнейшем, для удобства, я буду называть его кратко – DYNA MPTool. Так вот DYNA в отличие от всем знакомого SMI MPTool , является SORTING-инструментом, который выполняет глубокий анализ состояния ячеек микросхем флеш-памяти.
Следовательно, применять утилиты DYNAMPTool, необходимо для SMI-флешек низкого качества. К примеру, подавляющая часть USB2.0 сегмента флешек компании Silicon-Power, шьётся исключительно в приложениях DYNA.
Прошивка в DYNAMPTool, занимает много времени, посему рекомендую вас сначала всё же проверить, может мощностей SMIMPTool хватит чтобы обработать вашей флешке. Инструкция по работе в ней, доступна по следующей ссылке – РЕМОНТ В SMIMPTOOL .
ВВЕДЕНИЕ
В статье я буду использовать проблемную для SMIMPTool флешку, а именно 4 гиговую SiliconPower Helios101. Особенность моего экземпляра в том, что при незначительном увеличении предельного числа бедов, можно добиться того, что SMIMPTool её прошивает. Только на выходе, при проверке с помощью H2TESTW, флешка стабильно оказывается с незначительным количество бэдов. И дальнейшее увеличение BadBlock в программе, не приводит к избавлению от этой напасти.
; Выдержка из отчёта программы ChipGenius_v4_00_0201.exe:
Controller Vendor: SMI
Controller Part-Number: SM3257ENAA – ISP 150513-AA0
Flash ID code: 98DE9493 7657 – Toshiba TC58NVG6DDJTA00 – 1CE/Single Channel [MLC-16K] -> Total Capacity = 8GB
Это я описал один из распространённых случаев, когда приходится обращаться к прошивке в Dyna Mass Storage Production Tool. Бывают и другие, например такой, как ошибка:
Bad Block over setting (11) (User-YYYY (M) > FW-XXXX (M))
Обратите внимание на содержимое скобок, именно при их (User FW) наличии утилита говорит вам: “Возьми DYNAMPTool, ничто другое тебе парень не поможет”!
Когда мы уже знаем, какой контроллёр в флешке и то что нам нужна ДЮНА, осталось скачать подходящую версию дистрибутива. Для этого переходим на СТРАНИЦУ ЗАГРУЗОК DYNA MPTOOL (ССЫЛКА) .
Там скачиваем, самую свежую версию утилиты Dyna, в квадратных скобках у которой, можно обнаружить наш заветный контроллёр SM3257ENAA. На момент написания статьи, это Dyna Mass Storage Production Tool v14.07.18.02 N0726 [SM3257ENAA].
ПРОЦЕСС ВОССТАНОВЛЕНИЯ
Сначала оговорюсь, что различные версии дистрибутивов, могут немного отличаться как внешне, так и составом настроек. Но на суть действий это мало влияет, просто подходите к каждому шагу с головой и всё у вас получится.
Распаковываем подобранный дистрибутив в удобное месте на жестком диске, желательно чтобы адрес был краткий и без мутных символов в пути, например:
D:Star_SM3257ENAA_N0726
Запускаем главный исполняемый файл SMIMPTool.exe, затем подключаем флешку к компьютеру.
Если флешку утилиту не опознала, то нажимаем кнопку Scan(R).
После успешного распознания накопителя, нам необходимо перейти к настройкам, для этого нажимаем кнопку Setting(S).
Пароль к настройкам, как правило, отсутствует, т.е. оставляем поле пустым. Если же, вам всё же попалась версия где затребуется пароль, то он несомненно будет указан на странице загрузок н сайте USBDev.
Далее выбираем конфигурации, по умолчанию это NDefault.INI.
В настройках нас интересует только первая вкладка OpenCard Config, к остальным же при восстановлении флешек не имеет смысл обращаться, если конечно там что-то не на напортачили.
Расстановка галочек и птичек должна у вас выглядеть, примерно таким же образом, как и показано на приведённой картинке. Основные параметры напишу ниже:
Optimize Option: Capacity (Default)
Enable Low Level
[V] Enable ECC Threshold (Bits)
[V] Format
[V] FAT32
ECC – значение подбираем согласно таблицам, с рекомендуемым значениями данным в следующей статье – Настройка ECC у контроллёров Silicon Motion (SMI) . Если вам лень или не позубам разобраться в этим непонятных буквах, то можете выставить этак 24 в надежде на русский авось.
Функционал ДЮНЫ, а следовательно интерфейс, частенько претерпевает существенные изменения. Так например в инструментах для контроллёра SM3257ENBA, уже отсутствует ручная регулировка ECC, её видимо банально упразднили. Так что там у нас нету никакой возможности, попытать счастье с повышением скорости работы носителя, путём снижения объёма.
Сохраняем настрйоки кнопкой Save и щелкаем по Start(A), для запуска процесса прошивки.
Продолжительность обработки может сильно варьироваться, в зависимости от множества факторов. Так для 8 гиговой флешки это может быть как 10 минут, так и 70. Например, понижение уровня параметра ECC, может сильно форсировать приближение финиша.
ЗАМЕЧАНИЯ – ОШИБКИ
А теперь поведаю, про некоторые особенности и возможные неприятности на пути к успеху.
Bad Block over setting 0X11 (Fail)
Говорит вам, о том что мощностей в текущей конфигурации недостаточно для успешного осуществления процесса ремонта флешки. Такое например бывает в режиме SpeedFirst, который по понятным причинам не дружит с DownGrade микросхемами. Т.е. нужно стараться повысить тщательность сканирования памяти флеш-накопителя.
ПОПЫТКА ПОВЫСИТЬ СКОРОСТЬ С ПОМОЩЬЮ РЕГУЛИРОВКИ ПАРАМЕТРА ECC
Хочу немного дополнить про ECC, ибо это может оказаться для вас крайне интересно. Дело в том, что чем выше его значение, тем больший объём можно получить на выходе, но с меньшей скоростью. Так для моей конкретной флешке, рекомендуемое значение ECC=30. В ходе экспериментов выяснилось следующее:
30ECC = 7800MB объём и 6,5MB/s скорость записи;
2ECC = 3900MB объём и 11,5MB/s скорость записи;
Напомню, если вы забыли, что заявленный производителем объём это 4GB. Таким образом, перед нами встаёт вопрос, чем пожертвовать. Думаю вы лучше ответите на вопрос, что вам выбирать между объёмом и скоростью.
В зависимости от типа памяти и её качества, разница между ними может очень сильно нивелироваться. Поэтому не удивляйтесь, если на вашей конкретной флешки, расхождения будут мизерными.
Спрашивать советы у меня, по лечение ваших флешек, следует исключительно на форуме USBDev – ЩЁЛКНИТЕ, ЧТОБЫ ЗАДАТЬ ВОПРОС НА ФОРУМЕ (FORUM) .
Как перепрошить флешку
Существует множество причин, по которым флешка внезапно перестаёт нормально работать: данные не читаются, накопитель не виден в Проводнике, требует форматирования или даже не опознаётся системой. Самая безобидная из них — возникающие вследствие преждевременного извлечения накопителя ошибки файловой системы, с которыми вполне успешно справляется запущенная с параметрами /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
USBVID_090C&PID_1000CCYYMMDDHHMMSS000000
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 CIDWrite 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. Что мы и сделаем в следующей части
Самое первое, что необходимо сделать, это сохранить инфу о текущем состоянии флешки, тогда у нас будет объективный критерий того, стало ли лучше/хуже, чем было изначально и насколько.
В первую очередь это скоростные характеристики. Я пользуюсь старой-доброй тестилкой скорости 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. Что мы и сделаем в следующей части
16 комментариев
спасибо за програмку, справилась лучше всех других!!! флешку востановила!(писало нет доступа и защита от запись) моя флешка нр без номерная, все перепробывала-а эта програмка помогла!!! СОВЕТУЮ!!!
- Лана
-
19 марта 2015, 00:03
-
- ↓
за исключением парочки троянов при скачивании файла, программа со своей задачей справилась. Флешка была SP 8гб sandisk
- Алексей
-
7 апреля 2015, 16:53
-
- ↓
Восстановил китайскую флешку в виде фигурки-брелка, которая не форматировалась. 47мин. и флешка заработала.
- no name
-
17 апреля 2015, 15:58
-
- ↓
подскажите пароль на изменение настроек в Star SM3257ENBA N0920 (MP Ver 14.09.17.21)
- Доброжелатель
-
25 апреля 2015, 19:00
-
- ↓
- Бобур
-
22 июня 2015, 09:18
-
- ↑
- ↓
At me not work 320 password,
pleasse password
thanks
- Cornel
-
18 августа 2015, 19:08
-
- ↑
- ↓
Пароль в данной программе к настройкам — пустой, просто нажимаете ОК, оставляя пустым поле ввода пароля.
- Sc0rpi0n3
-
31 июля 2016, 23:35
-
- ↑
- ↓
smi3257en q ba со 2 попытки, первая фейлом закончилась. Около часа 8гиг
- ReaLPadliK
-
30 июля 2015, 03:32
-
- ↓
Попробовал оживить флешку, и что то она у меня стала 2ГБ вместо 8ГБ)
- Илья
-
23 ноября 2015, 16:14
-
- ↓
Flash ID Error! ( Flash ID not found in Database )
-
29 апреля 2016, 17:16
-
- ↓
Благодарю. Программа справилась с реанимацией флэхи Transend (8Гб на контроллере SM3255AB с памятью Samsung K9ABG08U0A).
Бэд блоки зарезаны, объем сократился до 7.3 Гб
- Владимир
-
10 мая 2016, 13:00
-
- ↓
Спасибо огромное за программу! Восстановил флешку на 16гб vid = 090c pid = 1000. В один прекрассный день вставил флешку а на ней вместо файлов и папок непонятные иероглифы, перепробовал 50 программ чтобы отформатировать, но никак, сбой памяти бесконечно! ПОМОГЛА ТОЛЬКО ЭТА ПРОГРАММА!
- Николай
-
11 июля 2016, 12:55
-
- ↓
ПРОГРАММА НЕ ЧИТАЕТ ФЛЕШКУ ВСЕ ДВА ОКНА ПУСТЫЕ ВОТ И ЧЕК5
- МИХАИЛ
-
12 июля 2016, 23:12
-
- ↓
Спасла флешку на SM3257ENLT (SM3257ENBA) SP 4Gb
Спасибо за прогу помогла только она.
- Horor
-
17 сентября 2016, 08:33
-
- ↓
how i can change ECC in SMI Dyna when auto set ECC is enable
- start30
-
18 октября 2018, 10:17
-
- ↓
Well repaired Silicon-Power 16G, SM3257ENBA VID = 090C PID = 1000
- Div
-
23 июня 2021, 00:31
-
- ↓
И вот с трудом была найдена подходящая версия последней программы, способной что-нибудь сделать с умершей флешкой. Это оказалась производственная утилита под названием Dyna Mass Storage Production Tool. Только единственная из нескольких её версий оказалась в состоянии идентифицировать чипы памяти флешки. Программа была запущена с настройками по умолчанию, но в конце работы выдала ошибку, как это делала SMI Mass Production Tool. Тогда была применена программа для идентификации внутренностей коматозной флешки под названием Flash Drive Information Extractor. Она выдала ряд нужной информации, в частности Flash ID чипов памяти флешки. Вот что сообщила Flash Drive Information Extractor о коматозной флешке:
Volume: T:
Controller: Silicon Motion SM3257 ENAA
Possible Memory Chip(s):
Toshiba TH58NVG7T2HTA20
Toshiba TC58NVG6T2HTA00 *2
Memory Type: TLC
Flash ID: 98DE9892 7256
Flash CE: 2
Flash Channels: Single
Chip F/W: ISP NONE
MPTOOL Ver.: 0.00.00
VID: 090C
PID: 3000
Manufacturer: Silicon Motion, Inc.
Product: SM3255AA MEMORY BAR
Query Vendor ID:
Query Product ID: USB MEMORY BAR
Query Product Revision: 1000
Physical Disk Capacity: 0 Bytes
Windows Disk Capacity: 0 Bytes
Internal Tags: 8VAG-AAGA
USB Version: 2.00
Declared Power: 100 mA
ContMeas ID: 7B46-01-EE
Microsoft Windows XP SP3
—
Такая информация, как Flash ID была вручную введёна в программу, также изменены её некоторые другие настройки:
Программа проработала около полутора часов. При работе программы флешка сразу ожила, правильно заработал её световой индикатор, а чипы нагрелись. Причём чип контроллера до обжигающего палец состояния, а чипы памяти стали просто горячими. Программа просто вдохнула жизнь в коматозную флешку! По окончании работы программы всё было закончено, причём благополучно. Флешка полностью восстановилась, и данная программа отформатировала её в FAT32. В процессе работы Dyna выявляла и сканировала повреждённые блоки памяти больной флешки:
А это одно из окон с вручную введёнными настройками программы перед её работой:
После процесса лечения программа Flash Drive Information Extractor выдала о флешке такую информацию (сравните с подобной информацией выше):
Volume: T:
Controller: Silicon Motion SM3257 ENAA
Possible Memory Chip(s):
Toshiba TH58NVG7T2HTA20
Toshiba TC58NVG6T2HTA00 *2
Memory Type: TLC
Flash ID: 98DE9892 7256
Flash CE: 2
Flash Channels: Single
Chip F/W: ISP 110712-AA-
MPTOOL Ver.: 13.11.01
VID: 090C
PID: 1000
Manufacturer: SMI Corporation
Product: Mem drive Easyll
Query Vendor ID: takeMS
Query Product ID: Mem drive Easyll
Query Product Revision: 1100
Physical Disk Capacity: 15728640000 Bytes
Windows Disk Capacity: 15711846400 Bytes
Internal Tags: QU2G-LAHA
File System: FAT32
Relative Offset: 1400 KB
USB Version: 2.00
Declared Power: 500 mA
ContMeas ID: 7B46-03-EE
Microsoft Windows XP SP3
—
В итоге флешка правильно восстановила свои идентификаторы, например PID, ожила и отформатировалась. Единственное, что форматированная ёмкость накопителя уменьшилась, и составила 15711 млн. байт вместо 16022 млн. байт у будучи новой флешки. Но это небольшая потеря, главное, что все параметры накопителя вернулись в первоначальное состояние.
Далее, ради чистоты эксперимента, к уже рабочей флешке снова была применена производственная утилита SMI Mass Production Tool. И она снова выдала ошибку, угробив флешку. Накопитель опять впал в кому. Далее снова пришлось полтора часа работать производственной утилите Dyna Mass Storage Production Tool, и снова флешка вернулась в этот мир в целости и сохранности.
В настоящий момент, когда автор пишет этот отзыв, играет музыка с файлов, записанных на флешку TakeMS 16GB MEM-Drive Easy II. Флешка работает, как ей и положено это делать.
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. Что мы и сделаем в следующей части
Как блокируют флешки и как обходят эту защиту : Операционные системы и программное обеспечение
А какие существуют методы защиты от вредоносных флешек и как их можно обойти? Сейчас разберемся!
В этой статье мы рассмотрим, как устроена защита 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
USBVID_090C&PID_1000CCYYMMDDHHMMSS000000
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 CIDWrite 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).
Безопасникам мы рекомендуем полностью блокировать подключение дискет и дисков в ОС, чтобы исключить описанные варианты обхода защиты. Будем рады получить обратную связь в комментариях. Может быть, у читателей найдутся прикольные решения для защиты от клонов или анализа аномалий при подключении устройств.
Прошивка флешки smi mass production tool. Восстановление флешки через прошивку контроллера. Определить VID и PID для восстановления флешки
В последнее время к моим основным внерабочим “лечебным” занятиям (ремонт компьютеров, переустановка и настройка) прибавилось еще одно. Восстановление флэшек. Несут без остановки. горстями. Толи флэшки стали делать хуже, толи люди перестают их беречь, но факт остается фактом: не проходит и недели, чтобы кто-нибудь не подкинул мне такого рода “халтурку”.
Обычная фраза, произносимая клиентом при передаче мне дохлой флэшки обычно звучит так: “Отдавал (а) нашим компьютерщикам – сказали что ее не починить…”. Я вообще человек доверчивый, но относительно компьютеров – пока сам не попробую, не успокоюсь. Так вот, из 100% флэшек с диагнозом “Выкинуть” от посторонних компьютерщиков я восстановил … 100% ! Удивительно просто, что движет такими “компьютерщиками”… Это типа “лень возиться”? Обычно у меня на восстановление уходит 10 — 20 минут … Или это незнание “как” ? Но ведь интернет никто не отменял! Сдается мне, что тупо попробовав отформатировать флэшку и получив ошибку “Диск не может быть отформатирован”, они смело рекомендуют выбросить рабочую
флэшку на помойку…
Специально для таких “компьютерщиков” (буду вместе с флэшкой возвращать клиенту записочку “компьютерщикам” с адресом этой статьи), а так же для всех желающих знать
провожу краткий ликбез по восстановлению флэш-накопителей.
Начнем с теоретической части. При желании ее можно пропустить. Из чего состоит флэш-накопитель? Очень просто. Обычно такое устройство содержит 2 микросхемы: первая – непосредственно флэш-память, где хранятся данные. Вторая – это микроконтроллер, который обслуживает операции чтения/записи микросхемы памяти и обеспечивает передачу данных от компьютера через USB в память и обратно.
Сбои в работе накопителя бывают как в первой микросхеме, так и во второй. Микроконтроллер имеет кэш и управляется своей микропрограммой, которая производит операции чтения/записи в кэш и перенос из кэша в микросхему памяти. В результате множества факторов (таких, например, как выдернутая из компьютера раньше времени флэшка, сбои питания, плохой контакт в разъеме, статическое электричество и т.п.) происходят такие явления как порча содержимого кэша контроллера или порча его микропрограммы.
В первом случае данные из кеша либо не запишутся в микросхему памяти, либо запишутся поврежденными. Во втором случае все гораздо хуже, т.к. сбой программы управления микроконтроллера может сотворить с памятью все что угодно. Вплоть до записи в нее полного мусора. Кроме того, сама флэш-память имеет ограниченный ресурс записи, хотя и большой. Так же, контроллер может заблокировать некоторые операции с памятью, если ему что-либо не понравится.
Вот из-за таких сбоев флэшка и перестает номально работать. При этом часто само железо флэшки остается полностью рабочим
. Необходимо лишь либо поправить мозги микроконтроллеру, либо подрихтовать память. Вот список наиболее часто встречающихся программных сбоев флэш-накопителя:
- Накопитель не определяется системой
- Накопитель определяется, но показывает нулевой размер или меньше чем был
- Windows требует отформатировать флэшку, но она не форматируется
- При попытке записи на флэшку windows ругается “снимите защиту от записи”
- Сообщения типа «Вставьте диск в дисковод» или «Нет доступа к диску»
Внимание! Использование приведенной ниже практики в 99% случаев приведет к порче информации, хранящейся на накопителе! Если вам нужна сама флэшка – действуйте как написано ниже.
Если же вам нужна именно информация с нее – ищите специализированную фирму, которая занимается восстановлением данных с флэш-памяти. У таких фирм есть специальное оборудование, способное подключиться к микросхеме памяти в обход контроллера флэшки и вытащить оттуда все как есть для дальнейшего восстановления.
Утилиты восстановления от производителя флэшки
Если у вас сбойнула флэшка именитого
производителя, такого как Transcend, Kingston, Kingmax, A-Data и т.п., то перво-наперво
идем к производителю на сайт
в поисках утилиты восстановления. К производителю на сайт имеет смысл заглянуть даже если он не именит. Глядишь повезет. Главное, что он известен, этот производитель. (в одном из моих случаев, на флэшке было написано Samsung, однако утилит я на сайте ГНУСМАСов не нашел). На сайте производителя ищем утилиту типа
Recovery Tool
или
Format Tool
, в общем, утилиту восстановления. Скачиваем утилиту, если нашли, запускаем при вставленной больной флэшке, следуем указаниям программки и в 50% случаев радуемся ожившей, чистенькой как из магазина, флэшке.
Если у вас флэшка no name
, т.е. неизвестно, как звали того китайского ребенка, спаявшего ее за горстку риса в подвале на окраине Пекина, то переходим к следующему пункту.
Если вы попали в те 50%, которым утилита от производителя не помогла – тогда тоже переходим к следующему пункту.
Приведу несколько ссылок на утилиты восстановления разных фирм:
Recovery Programm — находите там на фото свою флэшку и скачиваете для нее соответствующую Recovery Programm
JetFlash Online Recovery – скачиваете и лечите свой JetFlash. Все кроме модели JetFlash V15, для нее нужна отдельная утилита, скачивается там же.
Пляски с бубном
Если у вас сбойнул китайский no name или на сайте производителя нет утилиты или она есть но не помогла – тогда вам сюда. Именно здесь раскроется весь ваш творческий потенциал