Skip to content

Beginners Guide RU

bobberdolle1 edited this page Jan 7, 2026 · 1 revision

Полный гайд для новичков

🇬🇧 English version


Этот гайд для тех, кто никогда не работал с программаторами флеш-памяти. Опыт в электронике не требуется. Объясним всё с нуля.


🤔 О чём вообще речь?

Что такое флеш-память?

Флеш-память — это тип хранилища, который сохраняет данные даже без питания. Она внутри:

  • 📶 Роутеров — хранит прошивку и настройки
  • 📷 IP-камер — хранит прошивку и записи
  • 🎮 Игровых консолей — хранит игры и сохранения
  • 📱 Телефонов/планшетов — хранит всё (eMMC)
  • 💾 USB-флешек — это буквально флеш-память
  • 🖥️ SSD — быстрое флеш-хранилище
  • 🏠 Умного дома — прошивки и конфиги
  • 🚗 Автомобильной электроники — прошивки ECU

Что такое программатор?

Программатор — это устройство, которое может:

  • Читать данные из флеш-чипов (делать копию)
  • Записывать данные во флеш-чипы (восстанавливать или изменять)
  • Стирать флеш-чипы (удалять всё)

Зачем мне это?

Ситуация Что делает OpenFlash
Окирпиченный роутер Считать рабочую прошивку с другого роутера, записать в сломанный
Забыл пароль Считать флеш, найти/сбросить пароль в конфиге
Восстановление данных Считать сырые данные с повреждённого устройства
Любопытство Посмотреть что внутри твоих устройств
Исследование безопасности Анализировать прошивки на уязвимости
Ремонт Клонировать рабочий чип для замены мёртвого

Чем особенен OpenFlash?

Коммерческие программаторы стоят $200-2000. Они громоздкие, только под Windows, и с ужасным софтом.

OpenFlash использует микроконтроллер за $4 (Raspberry Pi Pico) и бесплатный софт для Windows, Mac и Linux.

Коммерческий программатор:  OpenFlash:
┌─────────────────────┐     ┌─────────────────────┐
│ Устройство за $500  │     │ Raspberry Pi Pico $4│
│ Софт под Windows XP │     │ Современное приложение│
│ Проприетарный       │     │ Open source         │
│ Мало чипов          │     │ 230+ чипов          │
└─────────────────────┘     └─────────────────────┘

🛒 Что нужно купить?

Минимальный список (~$5-10)

Вещь Цена Где купить
Raspberry Pi Pico ~$4 AliExpress, Amazon, местный магазин электроники
Провода-перемычки (female-female) ~$2 Там же, возьми набор из 40 штук
Micro USB кабель ~$1 Наверняка уже есть

Всё! Итого: ~$5-10

Опционально, но полезно

Вещь Цена Зачем
Макетная плата (breadboard) ~$3 Упрощает подключение
TSOP-48 адаптер ~$5 Для выпаянных чипов
Мультиметр ~$10 Для диагностики
Паяльник ~$15 Если нужно выпаивать чипы

Какой Raspberry Pi Pico брать?

Есть несколько версий:

Модель Цена Скорость Рекомендация
Pico (RP2040) ~$4 Хорошая ✅ Лучший для новичков
Pico W (RP2040 + WiFi) ~$6 Хорошая WiFi не используется, сэкономь
Pico 2 (RP2350) ~$5 Лучше ✅ Чуть быстрее

Бери обычный Pico или Pico 2. Версия с WiFi тут не поможет.


📥 Шаг 1: Установи софт

Скачай OpenFlash

  1. Иди на github.com/openflash/openflash/releases
  2. Скачай для своей системы:
    • Windows: OpenFlash-3.x.x-x64.msi — двойной клик для установки
    • Mac: OpenFlash-3.x.x.dmg — перетащи в Applications
    • Linux: OpenFlash-3.x.x.AppImage — сделай исполняемым и запусти

Попробуй без железа (Mock режим)

Прежде чем что-то подключать, убедимся что приложение работает:

  1. Открой OpenFlash
  2. Нажми кнопку "Mock" (вверху слева)
  3. Нажми "Scan"
  4. Увидишь "OpenFlash Mock Device" — нажми "Connect"
  5. Нажми "Detect Chip" — покажет симулированный чип
  6. Нажми "Dump NAND" — смотри как "читаются" фейковые данные
  7. Исследуй вкладки: Hex View, Bitmap, Analysis, AI

Если это работает — софт готов!


🔌 Шаг 2: Прошей Pico

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

Скачай прошивку

  1. Иди на github.com/openflash/openflash/releases
  2. Скачай openflash-rp2040.uf2 (или openflash-rp2350.uf2 для Pico 2)

Прошей

  1. Зажми кнопку BOOTSEL на Pico (единственная кнопка на плате)
  2. Удерживая кнопку, воткни USB кабель в компьютер
  3. Отпусти кнопку — Pico появится как USB-диск "RPI-RP2"
  4. Перетащи файл .uf2 на этот диск
  5. Pico перезагрузится автоматически — диск исчезнет, это нормально!

Проверь что сработало

  1. Открой OpenFlash
  2. Убедись что "Mock" НЕ выбран
  3. Нажми "Scan"
  4. Должен появиться "OpenFlash Device" — успех!

Если не видишь:

  • Попробуй другой USB кабель (некоторые только для зарядки)
  • Попробуй другой USB порт
  • Перепрошей прошивку

🔗 Шаг 3: Разберись с подключениями

Типы флеш-памяти

Есть разные типы флеш-чипов, каждый с разными подключениями:

Тип Проводов Где встречается
SPI NAND 4-6 Роутеры, IoT устройства
SPI NOR 4-6 BIOS чипы, мелкие устройства
Parallel NAND 14+ Старые устройства, большие объёмы
eMMC 4-6 Телефоны, планшеты, новые устройства

Начни с SPI (4 провода) — это проще всего!

SPI подключение (самое простое)

SPI флеш-чипы имеют 8 ног и требуют только 4 подключения:

SPI Flash чип (8 ног)
┌────────────────┐
│ 1 CS#    VCC 8 │  ← Питание (3.3V)
│ 2 DO    HOLD 7 │
│ 3 WP#    CLK 6 │  ← Тактовый сигнал
│ 4 GND     DI 5 │  ← Земля
└────────────────┘

Подключи к Pico:
• Пин 1 (CS#) → Pico GP17
• Пин 2 (DO)  → Pico GP16
• Пин 4 (GND) → Pico GND
• Пин 5 (DI)  → Pico GP19
• Пин 6 (CLK) → Pico GP18
• Пин 8 (VCC) → Pico 3V3

⚠️ КРИТИЧНО: Предупреждение о напряжении

Флеш-чипы работают на 3.3V. Никогда не подключай 5V — это убьёт чип!

Pico работает на 3.3V, так что прямое подключение безопасно. Но:

  • Не используй Arduino Uno (5V логика)
  • Не подключай к пину 5V на Pico
  • Всегда перепроверяй перед включением

🔧 Шаг 4: Подключи первый чип

Давай сделаем простое чтение SPI NOR флеш. Эти чипы распространены и просты.

Найди чип для практики

Хорошие цели для практики:

  • Старый роутер который не нужен
  • USB флешка (внутри SPI NOR)
  • Arduino плата (есть SPI флеш для загрузчика)
  • Любая мёртвая электроника с 8-ногим чипом

Определи чип

Ищи 8-ногий чип с маркировкой типа:

  • W25Q... (Winbond)
  • MX25L... (Macronix)
  • GD25Q... (GigaDevice)
  • IS25LP... (ISSI)

Запиши полный номер!

Подключи

Если чип ещё на плате (чтение in-circuit):

⚠️ Это сложно! Чип может быть подключён к другим компонентам. Безопаснее выпаять, но можно попробовать:

  1. Полностью обесточь устройство
  2. Подключи провода к ногам чипа (используй тестовые клипсы или аккуратную пайку)
  3. Не запитывай оригинальное устройство — только питание от Pico

Если чип выпаян:

Используй макетку или SOIC-8 адаптер:

Pico                    SPI Flash
┌─────────────┐        ┌─────────┐
│ GP16 ───────┼────────┼─ DO     │
│ GP17 ───────┼────────┼─ CS#    │
│ GP18 ───────┼────────┼─ CLK    │
│ GP19 ───────┼────────┼─ DI     │
│ 3V3  ───────┼────────┼─ VCC    │
│ GND  ───────┼────────┼─ GND    │
└─────────────┘        └─────────┘

Считай чип

  1. Открой OpenFlash
  2. Нажми "Scan" → выбери устройство → "Connect"
  3. Выбери интерфейс: "SPI NOR" (выпадающий список вверху)
  4. Нажми "Detect Chip"
    • Если показывает инфо о чипе → отлично!
    • Если "Unknown" → проверь подключение, попробуй снова
  5. Нажми "Dump"
  6. Выбери куда сохранить файл
  7. Дождись завершения
  8. Теперь у тебя есть бэкап чипа!

Проверь дамп

  1. Иди во вкладку "Hex View" — должны быть данные (не всё FF или 00)
  2. Иди во вкладку "Analysis" — определит что внутри
  3. Иди во вкладку "AI" — получи умный анализ

🎯 Шаг 5: Что делать с дампом

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

Hex View показывает сырые байты. Ищи:

  • Текстовые строки (читаемые слова)
  • Повторяющиеся паттерны
  • Всё FF = пустые/стёртые области

Автоматический анализ

Вкладки Analysis и AI расскажут:

  • Какие файловые системы внутри (SquashFS, JFFS2 и т.д.)
  • Где разные секции (загрузчик, ядро, rootfs)
  • Сжаты или зашифрованы ли данные
  • Потенциальные проблемы (bad block'и, повреждения)

Извлеки файлы

Если OpenFlash обнаружил файловую систему, можно извлечь файлы внешними инструментами:

  • binwalkbinwalk -e dump.bin
  • jefferson — для JFFS2
  • ubireader — для UBIFS
  • sasquatch — для SquashFS

Измени и запиши обратно

⚠️ Осторожно! Запись неправильных данных может навсегда окирпичить устройство.

  1. Внеси изменения в файл дампа
  2. В OpenFlash нажми "Write"
  3. Выбери изменённый файл
  4. Включи "Verify after write"
  5. Дождись завершения

❓ Частые вопросы

"Чип не определяется"

  1. Проверь все 6 проводов подключены
  2. Убедись что VCC идёт на 3V3 (не 5V!)
  3. Попробуй поменять местами DI и DO (легко перепутать)
  4. Проверь холодные пайки
  5. Чип может быть мёртв

"Дамп весь FF"

  • Чип может быть пустой (стёртый)
  • Чип может быть мёртв
  • Проблема с подключением — проверь соединения

"Дамп весь 00"

  • Точно проблема с подключением
  • Проверь GND соединение
  • Проверь линию данных (DO)

"Можно читать чип не выпаивая?"

Иногда да (in-circuit чтение), но:

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

"Я не умею паять"

Варианты:

  • Используй тестовые клипсы (SOIC-8 clip) — пайка не нужна
  • Потренируйся на мусорной электронике
  • Посмотри туториалы на YouTube
  • Попроси друга который шарит в электронике

"Это аннулирует гарантию?"

Скорее всего да. Делай это только с:

  • Устройствами которые тебе принадлежат
  • Устройствами без гарантии
  • Устройствами которыми готов рискнуть

📚 Следующие шаги

Теперь когда понимаешь основы:

  1. Подключение железа — детальные схемы для всех типов чипов
  2. Поддерживаемые чипы — проверь есть ли твой чип в базе
  3. Решение проблем — когда что-то не работает
  4. FAQ — ещё вопросы и ответы

🎓 Словарь

Термин Значение
Flash (флеш) Тип памяти, сохраняющий данные без питания
NAND Тип флеш-памяти для больших объёмов
NOR Тип флеш-памяти для малых объёмов и исполнения кода
SPI Последовательный интерфейс, 4 провода
Parallel Интерфейс с 8+ линиями данных одновременно
eMMC Флеш + контроллер в одном корпусе (как в телефонах)
Dump (дамп) Копия всех данных с чипа
Firmware (прошивка) Софт во флеш-памяти, который запускает устройство
Brick (кирпич) Устройство которое не загружается (как кирпич — бесполезно)
ECC Коррекция ошибок — исправляет битовые ошибки во флеш
Bad block Секция флеш-памяти которая повреждена и непригодна

У тебя получится! Начни с простого, учись по ходу.

Вопросы? GitHub Discussions

Clone this wiki locally