Как записывать на флэш-память

Содержание
  1. Снятие защиты от записи с флешки
  2. Принцип работы флеш-накопителей
  3. Защита информации на флеш-накопителях
  4. Неисправности флеш накопителей, связанные с системными сообщениями о том, что диск защищен от записи
  5. Аппаратный способ
  6. Снятие защиты от перезаписи с помощью редактора реестра Windows
  7. Принцип работы и устройство флеш-памяти
  8. Принцип работы флэш-памяти
  9. Ячейка памяти с одним транзистором
  10. Ячейка памяти с двумя транзисторами
  11. Устройство флэш-памяти с архитектурой NOR
  12. Устройство флэш-памяти с архитектурой NAND
  13. Восстановление стертой информации во Flash памяти на физическом уровне
  14. Введение
  15. 1. Как «чуть-чуть» запрограммировать ячейку памяти ?
  16. 2. Все стаканы разные
  17. Стирание
  18. Чтение и запись флеш-памяти с помощью Arduino на примере микросхемы 25L8005
  19. 2Подключение Arduino к микросхеме flash-памяти 25L8005
  20. 3Очистка флеш-памяти с помощью Arduino
  21. 4Запись данных в флеш-память с помощью Arduino
  22. Как записать образ ISO на флешку // 2 способа
  23. Запись ISO-образа на USB-флешку
  24. Способ №2 — UltraISO

Снятие защиты от записи с флешки

Как записывать на флэш-память

Миниатюрные USB-флеш-накопители – наши надежные электронные хранители различных данных. С их помощью информацию можно легко «носить» в кармане.

USB flash удобны, компактны, мобильны, имеют стильный дизайн и дают возможность подключиться к любому современному устройству с USB разъемом для считывания и записи информации.

статьи:

Принцип работы флеш-накопителей

В USB Flash Drive используется энергонезависимая память флеш типа NAND, управляемая микроконтроллером.

Микросхема контроллера содержит сведения о производителе, имеющейся памяти и служебную информацию, необходимую для работы устройства.

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

Обычно на флеш-носителях с небольшим объемом памяти используется файловая система семейства FAT (FAT 16, FAT 32, ex FAT), а для Flash размером более 64 ГБ применяются системы NTFS или ex FAT.

Защита информации на флеш-накопителях

Для обеспечения безопасности хранения конфиденциальной информации и предотвращения попадания вирусов на флеш носителях применяются различные способы защиты. Это:

  • Система сложной криптографической защиты, реализуемая шифрованием данных на аппаратном и программном уровнях. В этом случае при подключении устройства для доступа к файлам и папкам, записанным на флешке, пользователю необходимо ввести нужный пароль или комбинацию цифр и символов.Флешка с криптографической защитой
  • Реализация аппаратно-программного распознавания владельца устройства по отпечатку пальца.
  • Механическая и программная блокировки от перезаписи.

В этом случае при попытке изменить данные на подключенном флеш-носителе, например, при форматировании, копировании, переносе, удалении информации, на экране монитора появляются сообщения о защите диска от записи.

Пример защиты файла на флешке от перезаписи Защита флешки от форматирования

В настоящем обзоре приводятся несколько вариантов снятия защиты при механической и программной блокировке флеш носителя.

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

Неисправности флеш накопителей, связанные с системными сообщениями о том, что диск защищен от записи

Блокирование флеш накопителя от перезаписи может быть вызвано:

  • Специальными действиями пользователя по защите конфиденциальной информации при механической блокировке и шифровании данных;
  • Программным запретом на запись, установленным в действующей в операционной системе;
  • Аппаратными настройками персонального компьютера, запрещающими запись на USB устройства;
  • Ограничением циклов перезаписи, когда флеш накопитель исчерпал свои ресурсы. В этом случае Flash переводится в режим «только чтение»;
  • Переполнением диска и отсутствием свободного места для записи данных;
  • Неисправностью и отключением USB портов компьютера;
  • Некорректным форматированием;
  • Ошибками файловой системы;
  • Поврежденными (Bad) блоками (секторами) микросхемы памяти, вызванными износом;
  • Удалением или отсутствием специальной программы – «драйвера», предназначенной для правильного распознавания устройств операционной системой;
  • Небезопасным извлечением устройства с USB разъема во время запущенных процессов записи, перемещения, переименования, удаления, скачивания, чтения открытых файлов;
  • Запущенными (зависшими) системными процессами по обращению к диску;
  • Использованием флеш накопителей в устройствах с различными типами операционных и аппаратных систем. Например, после просмотра фильмов на телевизоре и записи видео данных с него, флеш не определяется и не читается компьютером. В этих случаях каждая операционная система меняет файловую структуру флешки, при этом записывает данные под свою уникальную схему; Неисправностями основных аппаратных компонентов: микросхемы памяти и микроконтроллера (включая сбои его программы);
  • Некачественным изготовлением при покупке «подделок» ведущих брендов;
  • При тепловых и электрических воздействиях. Например, при разрядах статического электричества и перегревах;
  • Механическими повреждениями в результате разломов, трещин, царапин, распайки и ударов во время падений;
  • Воздействиями влаги и электромагнитного излучения;
  • Нестабильностью подачи питания;
  • Вредоносным программным обеспечением – вирусами.

Аппаратный способ

Некоторыми производителями USB-накопителей реализуется механическая защита от изменений в виде переключателя (Lock), разрешающего или запрещающего запись. Обычно, он располагается на боковой части носителя и отмечается значком замка.

Для снятия механической блокировки необходимо передвинуть рычаг в противоположное направление.

Флешка с механической защитой от записи

Снятие защиты от перезаписи с помощью редактора реестра Windows

Реестр – это иерархическая база данных параметров, настроек аппаратного и программного обеспечения, сведений о профилях пользователей системы Windows.

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

Для того чтобы войти в Редактор реестра существует три варианта:

С помощью программной утилиты «Выполнить». Для этого:

  • войти в утилиту сочетанием клавиш Win + R(Win — значок Microsoft Windows);Win + R в строке набрать regedit и затем OK Вводим regedit
  • Через Поиск в меню Пуск. Для этого:открыть Пуск и в строке поиска набрать regeditи запустить файл, который отобразится в результатах.Запуск regedit через «ПУСК»
  • Средствами проводника Windows. Для этого по пути C:\Windows найти файл-приложение «regedit(.exe)» (Редактор реестра) и запустить его Запуск regedit.exe через проводник Windows

После того как осуществлен запуск редактора реестра, а именно открылось следующее окно

Окно реестра Windows 7

нужно найти ветку реестра

HKEY_LOCAL_MACHINE\ SYSTEM\ CurrentControlSet\ Control\

Источник: http://BsodStop.ru/kak-snyat-zashchitu-ot-zapisi-s-fleshki

Принцип работы и устройство флеш-памяти

Как записывать на флэш-память

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

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

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

Флэш-память (flash memory) — относится к полупроводникам электрически перепрограммируемой памяти (EEPROM). Благодаря техническим решениям, не высокой стоимости, большому объему, низкому энергопотреблению, высокой скорости работы, компактности и механической прочности, флэш-память встраивают в цифровые портативные устройства и носители информации.

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

Тип ПЗУПреимуществаНедостатки
Жесткий дискБольшой объем хранимой информации.Высокая скорость работы.Дешевизна хранения данных (в расчете на 1 Мбайт).Большие габариты.Чувствительность к вибрации.Тепловыделение.Шум.
Оптический дискУдобство транспортировки.Дешевизна хранения информации.Возможность тиражирования.Небольшой объем.Нужно считывающее устройство.Ограничения при операциях (чтение, запись).Невысокая скорость работы.Чувствительность к вибрации.Шум.
Флэш-памятьВысокая скорость доступа к данным.Экономное энергопотребление.Устойчивость к вибрациям.Удобство подключения к компьютеру.Компактные размеры.Ограниченное количество циклов записи.

Сегодня никто не сомневается в том, что флэш-память будет продолжать укреплять свои позиции в информационных технологиях, особенно в линейке мобильных устройств (КПК, планшеты, смартфоны, плееры). На основе флэш-памяти работают самые востребованные и популярные USB флэш-накопители и сменные карты памяти для электронных устройств (SD, MMC, miniSD…).

Карты памяти, как и USB накопители не стоят в стороне, а привлекают внимание потенциальных покупателей своим многообразием. От такого изобилия запоминающих устройств выигрывает только производитель, а потребитель испытывает ряд неудобств.

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

Вот небольшой список распространенных накопителей с флэш-памятью:

  • Compact Flash Type I (CF I)/Type II (CF II);
  • Memory Styck (MS Pro, MS Duo);
  • Secure Digital (SD);
  • miniSD;
  • xD-Picture Card (xD);
  • MultiMedia Card (MMC).
  • USB Flash Drive.

В одной из публикаций я писал о том как выбрать USB-флеш-накопитель, а о том как выбрать карту в формате SD (microSD, miniSD) читайте здесь.

Принцип работы флэш-памяти

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

Вот на его основе и разработаны основные типы флэш-памяти NAND и NOR. Конкуренции между ними нет, потому что каждый из типов обладает своим преимуществом и недостатком.

Кстати, на их основе строят гибридные версии такие как DiNOR и superAND.

Во флэш-памяти производители используют два типа ячеек памяти MLC и SLC.

  • Флэш-память с MLC(Multi-level cell — многоуровневые ячейки памяти)ячейки более емкие и дешевые, но они с большим временем доступа и меньшим количеством циклов записи/стирания (около 10000).
  • Флэш-память, которая содержит в себе SLC (Single-level cell — одноуровневые ячейки памяти) ячейки имеет максимальное количество циклов записи/стирания(100000) и обладают меньшим временем доступа.

Изменение заряда (запись/стирание) выполняется приложением между затвором и истоком большого потенциала, чтобы напряженность электрического поля в тонком диэлектрике между каналом транзистора и карманом оказалась достаточна для возникновения туннельного эффекта. Для усиления эффекта тунеллирования электронов в карман при записи применяется небольшое ускорение электронов путем пропускания тока через канал полевого транзистора.

Принцип работы флеш-памяти основан на изменении и регистрации электрического заряда в изолированной области («карман») полупроводниковой структуры.

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

Теперь рассмотрим более подробно ячейки памяти с одним и двумя  транзисторами…

Ячейка памяти с одним транзистором

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

А если на плавающий затвор поместить избыточный отрицательный заряд (электрон) и подать положительное напряжение на управляющий затвор ,то он компенсирует создаваемое управляющим затвором электрическое поле и не даст образовываться каналу проводимости, а значит транзистор будет находиться в закрытом состоянии.

Вот так, наличие или отсутствие заряда на плавающем затворе точно определяет состояние открыт или закрыт транзистор, когда подается одно и тоже положительное напряжения на управляющий затвор.

Если мы будем рассматривать подачу напряжения на управляющий затвор, как инициализацию ячейки памяти, то по тому, какое напряжение между истоком и стоком можно судить о наличии или отсутствии заряда на плавающем затворе.

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

Так каким же образом в случае необходимости на плавающий затвор помещать заряд (записывать содержимое ячейки памяти) и удалять его оттуда (стирать содержимое ячейки памяти) когда это необходимо.

Поместить заряд на плавающий затвор (процесс записи) можно методом инжекции горячих электронов (CHE-Channel Hot Electrons) или методом туннелирования Фаулера-Нордхейма.

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

Чтобы удалить заряд с плавающего затвора (выполнить стирания ячейки памяти) на управляющий затвор подается высокое отрицательное напряжение (около 9 В), а на область истока подается положительное напряжение. Это приводит к тому, что электроны туннелируют из области плавающего затвора в область истока. Таким образом происходит квантовое туннелирование Фаулера — Нордхейма (Fowler — Nordheim).

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

Так как при создании массива памяти, каждая ячейка памяти (то есть транзистор) подключается к двум перпендикулярным шинам. Управляющие затворы подключаются к шине, которую называют линией слов (Word Line), а стоки соединяют с шиной, ее называют битовой линией (Bit Line).

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

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

Ячейка памяти с двумя транзисторами

Двухтранзисторная ячейка памяти, это модифицированная однотранзисторная ячейка, в которой находится обычный КМОП-транзистор и транзистор с плавающим затвором. В этой структуре обычный транзистор выполняет роль изолятора транзистора с плавающим затвором от битовой линии.

Имеет ли преимущества двухтранзисторная ячейка памяти? Да, ведь с ее помощью можно создавать более компактные и хорошо масштабируемые микросхемы памяти, потому что здесь транзистор с плавающим затвором изолируется от битовой линии.

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

 Такой подход дает возможность снизить напряжение, которое необходимо для операции записи. Забегая наперед скажу, что двухтранзисторные ячейки применяются в памяти со структурой NAND.

Устройство флэш-памяти с архитектурой NOR

Тип этой памяти является источником и неким толчком в развитии всей EEPROM. Ее архитектура была разработана компанией Intel в далеком 1988 году. Как было написано ранее, чтобы получить доступ к содержимому ячейки памяти (инициализировать ячейку), нужно подать напряжение на управляющий затвор.

Поэтому разработчики компании все управляющие затворы подсоединили к линии управления, которая называется линией слов (Word Line). Анализ информации ячейки памяти выполняется по уровню сигнала на стоке транзистора. Поэтому разработчики все стоки транзисторов подсоединили к линии, которая называется линией битов (Bit Line).

Архитектура NOR получила название благодаря логической операции ИЛИ — НЕ (в переводе с английского NOR).  Принцип логической операции NOR заключается в том, что она над несколькими операндами (данные, аргумент операции…) дает единичное значение, когда все операнды равны нулю, и нулевое значение во всех остальных операциях.

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

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

Структура шести ячеек NOR Flash

Флеш-память с архитектурой NOR как правило используют в устройствах для хранения программного кода. Это могут быть телефоны, КПК, BIOS системных плат…

Устройство флэш-памяти с архитектурой NAND

Данный тип памяти был разработан компанией Toshiba. Эти микросхемы благодаря своей архитектуре применяют в маленьких накопителях , которые получили имя NAND (логическая операция И-НЕ). При выполнении операция NAND дает значение нуль только, когда все операнды равны нулю, и единичное значение во всех других случаях.

Как было написано ранее, нулевое значение это открытое состояние транзистора.

В следствии этого в архитектуре NAND подразумевается, что битовая линия имеет нулевое значение в том случае, когда все подключенные к ней транзисторы открыты, и значение один, когда хотя бы один из транзисторов закрыт.

Такую архитектуру можно построить, если подсоединить транзисторы с битовой линией не по одному (так построено в архитектуре NOR) , а последовательными сериями (столбец из последовательно включенных ячеек).

Данная архитектура по сравнению с NOR хорошо масштабируется потому, что разрешает компактно разместить транзисторы на схеме. Кроме этого архитектура NAND производит запись путем туннелирования Фаулера — Нордхейма, а это разрешает реализовать быструю запись нежели в структуре NOR. Чтобы увеличить скорость чтения, в микросхемы NAND встраивают внутренний кэш.

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

Но с другой стороны NAND сильно проигрывает в операции с произвольным доступом и не имеет возможности работать на прямую с байтами информации.

 В ситуации когда нужно изменить всего несколько бит, система вынуждена переписывать весь блок, а это если учитывать ограниченное число циклов записи, ведет к большому износу ячеек памяти.

Структура одного столбца NAND Flash

В последнее время ходят слухи о том, что компания Unity Semiconductor разрабатывает флэш-память нового поколения, которая будет построена на технологии CMOx.

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

В числе областей применения новой памяти значатся SSD и мобильные устройства. Ну, что же правда это или нет покажет время.

Чтобы более детально донести до Вас всю необходимую информацию я разместил видео ролик по теме.

P.S. Объяснить простым языком технический материал людям которые не представляют как построена архитектура компьютера… очень сложно, но я надеюсь у меня это получилось. Для полной и достоверной информации в этой статье я частично использовал учебную литературу. Надеюсь эта статья была для вас полезной и познавательной. Пока!

, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Источник: https://hobbyits.com/princip-raboty-i-ustrojstvo-flesh-pamyati/

Восстановление стертой информации во Flash памяти на физическом уровне

Как записывать на флэш-память

На Хабре появились интересные статьи (например), о том как стереть информацию на Flash SSD накопителе, так, что бы информация действительно была стерта.

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

А можно ли восстановить полноценно стертую информацию во Flash памяти? Не просто найти неиспользуемые области, в которых сохранились «ошметки» более не нужной (якобы стертой) информации, а именно восстановить исходное значение битов памяти после физического процесса стирания этих бит? Наш интерес к этой теме вызван не попыткой найти что-то тайное, а наоборот, дать рекомендации как стереть, чтобы никто не нашел (или правильней сказать затруднить). Сейчас в ряде приборов заложены алгоритмы 10 и более кратных процедур стирания, что во-первых, долго, а во-вторых, расходует ресурс Flash памяти и быстро выводит ее из строя. Но для того, что бы рекомендации были не абстрактные «сотрите дважды» или «сотрите, запишите и еще раз сотрите», а имели некое количественное выражение, нужно сначала научиться восстанавливать информацию. Интересно? Тогда поехали…

Введение

Затравочный вопрос Попробуйте сформулировать критерий оценки объема восстановленной информации? Если мы восстановили все, то это 100%, если ничего, то 0%. При этом нужно понимать, что если ни один «0» и ни одна «1» не совпадает с исходной информацией, то это означает, что мы восстановили 100% информации, но только проинвертировали ее.

Мы так и не пришли к какому либо устраивающих всех критерию, и при 50% совпадения с исходной информацией — мы считали минимумом возможного восстановления. Возможно коллективный Хабр-разум даст другие идеи?

Биты информации во Flash памяти хранятся в виде заряда на «плавающем» затворе либо в области подзатворного диэлектрика МОП-транзистора.

Если уровень заряда больше некоторого уровня, то ячейка запрограммирована, если ниже — то считается чистой. Пока мы остановимся на SLC Flash памяти, когда одна ячейка кодирует один бит. Есть более сложные типы, когда уровнем заряда в одной ячейки кодируется несколько бит.

Например, MLC — два бита на ячейку, условно отсутствие заряда = «11», 1/3 заряда = «01», 2/3 заряда = «10» и полный заряд соответствует коду«00». Для QLC на одной ячейке хранится уже четыре бита.

Поверх всего этого наложены еще всевозможные блочные корректирующие коды, которые дают уже достаточно высокий уровень надежности, даже при физических отказах нескольких ячеек. Но как уже отмечено ранее, мы пока остановимся на ячейках памяти, кодирующих один бит. И в частности подопытным кроликом будет отечественная микросхема 1636РР4, объемом 16Мбит.

И чтобы облегчить восприятие, воспользуемся аналогией — представим ячейку Flash памяти как стакан воды. И если стакан пустой — то это «1». Если полный — то «0». Во время операции программирования заряд заносится на «плавающий затвор» — наполняем стакан водой, при стирании заряд удаляется — выливаем из стакана воду.

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

Сергей Скоробогатов из Кембриджского университета (много интересного можно у него почитать) провел эксперимент на ячейках с плавающим затвором. Он выполнял операцию стирания для ячеек, в которые были предварительно записаны «0» и «1». Тенденция разницы пороговых напряжений показана на следующем рисунке.

Несмотря на то, что операция стирания выполняется 100 раз, отличие порогового напряжения запрограммированных и затем стертых ячеек от ни разу не программированных, очевидно существует. Т.е. если из пустого, но мокрого, стакана еще раз вылить воду, то он все равно остается мокрым. Таким образом, дублирование операции стирания не является безопасным и эффективным способом защиты от восстановления стираемой информации. Предположим, что у нас полностью чистая, ранее не использованная микросхема памяти, тогда ее ячейки памяти выглядят вот так Все ячейки читаются как «1», т.е. чистые. Теперь мы ее запрограммируем. Часть ячеек запрограммированы (заполнены водой), и читаются как «0». Часть ячеек осталась чистыми. Выполним стандартную процедуру стирания. Все ячейки читаются чистыми «1». Остаточного заряда не хватает, чтобы превысить порог. Но лишний заряд в ранее записанных ячейках остается — стаканы мокрые. Теперь если начать понемногу доливать во все стаканы воды, то ранее мокрые стаканы быстрее превысят порог, чем те, которые всегда были сухими. И так далее понемногу доливаем Пока все ранее записанные ячейки не перейдут снова в запрограммированное состояние. Вроде бы все просто, система взломана, все сейчас начнут восстанавливать прошивки защищенных микроконтроллеров, «фиксить» использованные метрошные карты, и о боже, начнут реверс инженеринг банковских. Рынок Flash памяти рухнет и поглотит за собой всю микроэлектронику… но нет. Все гораздо сложнее. Есть три аспекта, которые значительно затрудняют процесс.

1. Как «чуть-чуть» запрограммировать ячейку памяти ?

Обычно у микросхем Flash памяти стандартный процесс записи одного бита занимает до нескольких микросекунд. В частности у микросхемы 1636РР4 время программирования одного байта составляет не более 200 мкс. С одной стороны это достаточно длительный процесс, который легко можно «укоротить», например прервать. Но с другой стороны процесс записи очень сложный.

Во-первых, для программирования ячейки Flash необходимо высокое напряжение 7…15В. В современных микросхемах для удобства пользователей блок накачки высокого напряжения встроен в микросхему и высокое напряжение не требуется подавать извне.

Блок автоматически включается при начале операции записи, накачивает достаточный уровень из основного напряжения питания, а уже затем запускаются процессы подачи высокого напряжения в затворы для внесения заряда.

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

Даже команда «сброса» игнорируется в процессах записи или стирания. Остается только завершить процесс по выключению питания. Но на самом деле, разработчикам микросхемы, знающим как она работает, доступны различные методы, например, используемые при тестировании, в которых они имеют больше возможностей для управления.

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

Как видно, в конечном итоге все ячейки превышают порог «запрограммированности», но часть ячеек делает это быстро, а часть позже.

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

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

2. Все стаканы разные

Как видно из рисунка, в ходе исследований мы использовали паттерн «Шахматный код» для заполнения памяти и последующего восстановления информации. На следующем рисунке представлено как выглядит память после программирования и после стандартной процедуры стирания.

Поиграв настройками, нам удавалось восстановить более-менее воспринимаемую глазом картину в отдельной области, но при переходе к другой области, картина полностью разрушалась. Особенно это было заметно на границе секторов. Таким образом возникло понимание, что все ячейки разные. В микроэлектроннике этот эффект называют «miss-match» или повторяемостью элементов, т.е.

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

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

Для каждой ячейки мы можем примерно оценить ее поведение. Но для этого необходимо ее многократно стереть и записать квантами — создать модель. При этом модель каждой ячейки в разных образцах микросхемы будет разной. Т.е. модель создается для каждого образца, который мы исследовали.

Очевидно, что постоянные записи и стирания, необходимые для создания модели окончательно сотрут остатки атакуемой (восстанавливаемой) информации. Поэтому подход следующий: 1. Делается «слепок» образца атакуемой микросхемы, где для каждой ячейки записывается номер кванта, при котором превышен порог запрограммированности. 2.

Для данного образца микросхемы формируется модель ее ячеек «фон». 3. Результатом является разница между «слепком» и «фоном».
В результате чего получается достаточно качественно восстановить информацию. По результатам статистической обработки, четко различимы «горбы» восстановленных «0» и «1».

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

Стирание

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

Раз просто стирание не помогает, остается только одно — что-то записать перед стиранием, а потом стирать. Что же можно записать? Были проанализированы следующие варианты: — запись псевдослучайной последовательности. — запись во все ячейки «0», включая ранее запрограммированные (еще раз напомню, что стертая или чистая ячейка = «1»).

— запись инверсных данных, т.е. дозаписать «0» в чистые ячейки. В результате были получены вот такие результаты. 50% — как было отмечено в затравочном вопросе, является минимумом восстановления информации.

Таким образом, для безопасного стирания информации в Flash памяти лучше всего подходит метод «запись инверсных данных и стирание», когда перед стиранием все ранее незапрограммированные ячейки дозаписываются, после чего выполняется общее стирание. Это не исключает выполнение дополнительно других методов в зависимости от паранойи заказчика.

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

Смутить вас должны цифры 100, 1000 и 10 000 по оси Х! Что же они означают? Так вот, все выше описанное действительно, только в том случае, если исходная информация во Flash память была записана 10 000 (десять тысяч) раз. Т.е.

«Шахматный код» перед попыткой восстановления записывался и стирался 10 000 раз, только после этого наш метод восстановления позволял восстановить информацию. Это и есть третий аспект. То, как снижается уровень восстановления при 1000 и 100 записях, показывает как раз этот график. При однократной записи восстановить какую-либо информацию нам не удалось.

Так что рынок Flash памяти и микроэлектроники может чувствовать себя спокойно. P.S. Данная статья является результатом большого коллектива, и я выражаю огромную благодарность всем участникам.

P.P.S. А что будет если 10 000 записей в одну микросхему заменить на 10 000 разных микросхем с одной и той же информацией? Например, закрытая битами «Read Protect» прошивка в микроконтроллерах? Но об этом в следующий раз…

Хабы:

Источник: https://habr.com/post/484872/

Чтение и запись флеш-памяти с помощью Arduino на примере микросхемы 25L8005

Как записывать на флэш-память

Микросхема флеш-памяти (или ПЗУ) 25L8005 изготавливается в разных корпусах. Но как правило, ввиду малого размера, удобнее использовать микросхемы поверхностного монтажа. У меня как раз такая. Она выполнена в корпусе типа SOP 8L.

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

Так выглядит наша микросхема ПЗУ, припаянная к плате-переходнику с DIP-выводами:

Флеш-память припаяна к плате-переходнику

А вот так выглядит микросхема флеш-памяти в ZIF-панели:

Флеш-память в переходной панели с нулевым усилением

И под микроскопом:

Флеш-память в панели с нулевым усилением под микроскопом

Купить ПЗУшку можно, например, в Китае.

Теперь мы можем использовать макетную плату (бредборд) и с лёгкостью подключаться к микросхеме.

2Подключение Arduino к микросхеме flash-памяти 25L8005

Назначение выводов микросхемы ПЗУ, приведённое в техническом описании на микросхему (datasheet), следующее:

Назначение выводов микросхемы флеш-памяти 25L8005

Кстати, datasheet на микросхему флеш-памяти 25L8005 можно скачать в конце статьи.

Будем использовать для программирования флэш-памяти интерфейс SPI, поэтому подключимся к стандартным SPI выводам Arduino:

Вывод микросхемы флеш-памятиВывод платы Arduino
CS#цифровой пин 10
SIцифровой пин 11
SOцифровой пин 12
SCLKцифровой пин 13
WP#3V3
HOLD#3V3
VCC3V3
GNDGND

Здесь символом решётки # отмечены выводы, которые активируются логическим нулём.

Соберём электрическую схему подключения микросхемы флеш-памяти MX25L8005 к Arduino.

Схема подключения микросхемы флеш-памяти 25L8005 к Arduino

У меня ПЗУ на монтажной плате и подключённое к Arduino выглядит вот так:

Флеш-память на ZIF-панели, подключённая к Arduino Флеш-память на ZIF-панели, подключённая к Arduino

3Очистка флеш-памяти с помощью Arduino

Перед тем как записывать данные в флеш-память, необходимо стереть тот сектор или страницу, в который мы собираемся записывать. Если записываемых данных немного (в нашем учебном примере это будут всего 16 байт), то достаточно стереть 1 сектор.

Из документации на микросхему мы видим, что последовательность стирания такая: выставить разрешение на запись (1 байт), послать команду на стирание (1 байт) и адрес (3 байта), выставить запрет записи (1 байт).

Данная последовательность приведена на рисунке ниже:

Диаграмма очистки одного сектора флеш-памяти 25L8005

Именно это и делает приведённый ниже скетч:

#include const int SSPin = 10; const byte WREN = 0x06; const byte WRDI = 0x04; const byte SER = 0x20; const byte ADDR1 = 0; const byte ADDR2 = 0; const byte ADDR3 = 0; void setup() { pinMode(SSPin, OUTPUT); SPI.begin(); SPISettings mySet(100000, MSBFIRST, SPI_MODE0); // Выставление разрешения записи: SPI.beginTransaction(mySet); digitalWrite(SSPin, LOW); SPI.transfer(WREN); digitalWrite(SSPin, HIGH); SPI.endTransaction(); // Очистка сектора: SPI.beginTransaction(mySet); digitalWrite(SSPin, LOW); SPI.transfer(SER); SPI.transfer(ADDR1); SPI.transfer(ADDR2); SPI.transfer(ADDR3); digitalWrite(SSPin, HIGH); SPI.endTransaction(); // Выставление запрета записи: SPI.beginTransaction(mySet); digitalWrite(SSPin, LOW); SPI.transfer(WRDI); digitalWrite(SSPin, HIGH); SPI.endTransaction(); } void loop() { // ничего не делаем в цикле }

Загрузим этот скетч в Arduino с подключённой по приведённой выше схеме микросхемой памяти. После того как он отработал, флешка готова к записи.

4Запись данных в флеш-память с помощью Arduino

Теперь запишем на неё данные. Для примера возьмём небольшой массив из 16-ти байтов. Как видно из документации, для записи данных во флеш сначала нужно выставить разрешение на запись (1 байт), затем послать команду на запись (1 байт), передать начальный адрес (3 байта) и данные (в нашем примере 16 байт), а в конце выставить запрет записи (1 байт):

Диаграмма записи данных во флеш-память 25L8005

Напишем скетч, который записывает массив из 16-ти байт данных в ПЗУ:

#include const int SSPin = 10; const byte WREN = 0x06; const byte WRDI = 0x04; const byte READ = 0x03; const byte PP = 0x02; const byte ADDR1 = 0; const byte ADDR2 = 0; const byte ADDR3 = 0; void setup() { pinMode(SSPin, OUTPUT); SPI.begin(); SPISettings mySet(100000, MSBFIRST, SPI_MODE0); // Выставление разрешения записи: SPI.beginTransaction(mySet); digitalWrite(SSPin, LOW); SPI.transfer(WREN); digitalWrite(SSPin, HIGH); SPI.endTransaction(); // Запись массива данных в ПЗУ: SPI.beginTransaction(mySet); digitalWrite(SSPin, LOW); SPI.transfer(PP); SPI.transfer(ADDR1); SPI.transfer(ADDR2); SPI.transfer(ADDR3); byte data[] = {0x48,0x45,0x4c,0x4c,0x4f,0x2c,0x20,0x53,0x4f,0x4c,0x54,0x41,0x55,0x2e,0x52,0x55}; for (int i=0; i

Источник: https://soltau.ru/index.php/arduino/item/508-chtenie-i-zapis-flesh-pamyati-s-pomoshchyu-arduino-na-primere-mikroskhemy-25l8005

Как записать образ ISO на флешку // 2 способа

Как записывать на флэш-память

Всем добра!

Довольно часто требуется записать какой-нибудь образ диска ISO на флешку, например, при установке Windows, при создании аварийной флешки, для тестирования оперативной памяти, жесткого диска и т.д.

Тем более, что та же установка Windows с CD/DVD диска идет дольше (да и выходят из строя они чаще, чем флешки). Я уже не говорю о том, что далеко не на каждом новом ПК/ноутбуке установлен привод для дисков. Именно поэтому, использование флешки — предпочтительнее (да и универсальнее — к любому ПК с USB-портом можно подключить).

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

Примечание: ISO — самый популярный формат образов дисков. В нем распространяются больше половины всевозможных образов, которые можно встретить в сети.

*

Запись ISO-образа на USB-флешку

Сайт: https://www.poweriso.com/

PowerISO — очень мощная программа для работы с ISO-образами. Позволяет их открывать, редактировать, извлекать из них файлы, добавлять в ISO-образы файлы, сжимать их, записывать на CD/DVD диски и флешки, и пр. Так же в PowerISO можно сделать образ любого своего диска, протестировать его, получить контрольную сумму (для оценки — битый ли файл…).

В общем, как в PowerISO записать образ на флешку.

1) Первое, что делаете — открываете образ. Для этого нажмите кнопку «Открыть», либо откройте меню файл, а затем укажите файл-образ. Так же можно воспользоваться нажатием клавиш Ctrl+O.

PowerISO — открытие ISO образа диска

2) Если образ был открыть и никаких предупреждений программа не выдавала, переходим к меню «Инструменты». Выберите такую функцию, как «Создать загрузочный USB привод» (см. на стрелки на скриншоте ниже).

Создать загрузочный USB-привод

3) В некоторых случаях программа попросит дать ей права администратора. Просто соглашаемся: программа будет перезапущена, и вы продолжите процесс записи.

С правами администратора

4) В окне настроек записи, нужно:

  1. в графе «USB привод» указать вашу флешку (Осторожно! Не перепутайте буквы, т.к. в процессе записи все данные на флешке будут удалены;
  2.  метод записи: если вы записываете загрузочный образ ISO — выбирайте метод записи «USB — HDD» (например, для записи образов с Windows);
  3. графу с файловой системой можно оставить по умолчанию;
  4. далее нажмите «Старт»;
  5. кстати, обратите внимание, внизу окна даны ссылки на инструкции (несколько ссылок, в зависимости от записываемого образа).

Настройки записи в PowerISO

5) Программа вас еще раз предупредит, что все данные на выбранной флешке будут удалены!

Предупреждение: флешка будет очищена

6) Далее начнется процесс записи. Время записи сильно зависит от:

  1. загрузки вашего компьютера посторонними задачами (рекомендую все лишнее выключить: по крайней мере, торренты, игры, видео-редакторы и пр. программы, сильно нагружающие ПК);
  2. размера записываемого образа;
  3. скорости работы USB-привода и самой флешки.

7) Если запись прошла хорошо и без ошибок: вы увидите сообщение «Запись USB привода успешно завершена», как на скрине ниже.

Успешная запись флешки

Способ №2 — UltraISO

Сайт: https://www.ezbsystems.com/ultraiso/

UltraISO — самая знаменитая программа для работы с ISO образами. Умеет делать с ними практически все то же самое, что и первая: открывать, монтировать, редактировать и изменять, записывать загрузочные флешки, внешние жесткий диски, CD/DVD-диски пр.

Пользоваться ей столь же просто, как и первой. Обе, кстати говоря, поддерживают русский язык в полном объеме.

И так, начинаем работать в UltraISO

1) Для начала скачиваем (ссылка выше), устанавливаем и запускаем программу. Здесь особо комментировать нечего, разве только кроме одного — запустите программу от имени администратора (иначе может быть недоступна опция записи USB-флешки!).

Примечание! Для запуска от администратора: просто щелкните по значку с программой UltraISO — и в контекстном меню выберите «Запуск от имени администратора», как показано на скрине ниже.

Запуск с правами администратора

2) Далее откройте файл-образ ISO (для этого нажмите меню «Файл/открыть»).

UltraISO — открытие образа

3) Если образ открылся, откройте меню «Самозагрузка/Записать образ диска» (см. скриншот ниже).

Запись образа диска

4) После чего необходимо задать настройки записи:

  1. disk drive: выберите букву своей флешки (данные на ней будут удалены, поэтому — осторожно и внимательно!)
  2. метод записи: либо USB-HDD+, либо USB-HDD (это для записи загрузочных носителей, что в большинстве случаев и требуется). Сказать конкретно, что выбирать — довольно трудно, в большинстве случаев работает USB-HDD+ — но если вдруг ваша версия BIOS его не увидит, перезапишите флешку в режиме USB-HDD;
  3. далее нажмите кнопку «Записать».

Настройки записи в UltraISO

Примечание! В обычном режиме UltraISO автоматически форматирует носитель в файловую систему FAT32 (даже если до этого на флешке была NTFS). Для того чтобы осталась NTFS — требуется выбрать ExpressBoot, затем нажать на ExpressWrite. Итог: при распаковке образа на флешку, файловая система останется неизменной.

5) Дальше появиться стандартное предупреждение об удаление всей информации с вашей флешки. Еще раз проверяем букву флешки и соглашаемся…

Предупреждение об удалении

6) Если все прошло успешно в сообщения программы вы увидите надпись: «Синхронизация кэша. Запись завершена!». Обратите внимание, чтобы в списке сообщений программы не было ошибок, иначе ваш загрузочный образ просто выдаст ошибку при инсталляции Windows

Источник: https://ocomp.info/kak-zapisat-obraz-iso-na-fleshku-2-sposoba.html

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

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: