-
Notifications
You must be signed in to change notification settings - Fork 1
Beginners Guide RU
Этот гайд для тех, кто никогда не работал с программаторами флеш-памяти. Опыт в электронике не требуется. Объясним всё с нуля.
Флеш-память — это тип хранилища, который сохраняет данные даже без питания. Она внутри:
- 📶 Роутеров — хранит прошивку и настройки
- 📷 IP-камер — хранит прошивку и записи
- 🎮 Игровых консолей — хранит игры и сохранения
- 📱 Телефонов/планшетов — хранит всё (eMMC)
- 💾 USB-флешек — это буквально флеш-память
- 🖥️ SSD — быстрое флеш-хранилище
- 🏠 Умного дома — прошивки и конфиги
- 🚗 Автомобильной электроники — прошивки ECU
Программатор — это устройство, которое может:
- Читать данные из флеш-чипов (делать копию)
- Записывать данные во флеш-чипы (восстанавливать или изменять)
- Стирать флеш-чипы (удалять всё)
| Ситуация | Что делает OpenFlash |
|---|---|
| Окирпиченный роутер | Считать рабочую прошивку с другого роутера, записать в сломанный |
| Забыл пароль | Считать флеш, найти/сбросить пароль в конфиге |
| Восстановление данных | Считать сырые данные с повреждённого устройства |
| Любопытство | Посмотреть что внутри твоих устройств |
| Исследование безопасности | Анализировать прошивки на уязвимости |
| Ремонт | Клонировать рабочий чип для замены мёртвого |
Коммерческие программаторы стоят $200-2000. Они громоздкие, только под Windows, и с ужасным софтом.
OpenFlash использует микроконтроллер за $4 (Raspberry Pi Pico) и бесплатный софт для Windows, Mac и Linux.
Коммерческий программатор: OpenFlash:
┌─────────────────────┐ ┌─────────────────────┐
│ Устройство за $500 │ │ Raspberry Pi Pico $4│
│ Софт под Windows XP │ │ Современное приложение│
│ Проприетарный │ │ Open source │
│ Мало чипов │ │ 230+ чипов │
└─────────────────────┘ └─────────────────────┘
| Вещь | Цена | Где купить |
|---|---|---|
| Raspberry Pi Pico | ~$4 | AliExpress, Amazon, местный магазин электроники |
| Провода-перемычки (female-female) | ~$2 | Там же, возьми набор из 40 штук |
| Micro USB кабель | ~$1 | Наверняка уже есть |
Всё! Итого: ~$5-10
| Вещь | Цена | Зачем |
|---|---|---|
| Макетная плата (breadboard) | ~$3 | Упрощает подключение |
| TSOP-48 адаптер | ~$5 | Для выпаянных чипов |
| Мультиметр | ~$10 | Для диагностики |
| Паяльник | ~$15 | Если нужно выпаивать чипы |
Есть несколько версий:
| Модель | Цена | Скорость | Рекомендация |
|---|---|---|---|
| Pico (RP2040) | ~$4 | Хорошая | ✅ Лучший для новичков |
| Pico W (RP2040 + WiFi) | ~$6 | Хорошая | WiFi не используется, сэкономь |
| Pico 2 (RP2350) | ~$5 | Лучше | ✅ Чуть быстрее |
Бери обычный Pico или Pico 2. Версия с WiFi тут не поможет.
- Иди на github.com/openflash/openflash/releases
- Скачай для своей системы:
-
Windows:
OpenFlash-3.x.x-x64.msi— двойной клик для установки -
Mac:
OpenFlash-3.x.x.dmg— перетащи в Applications -
Linux:
OpenFlash-3.x.x.AppImage— сделай исполняемым и запусти
-
Windows:
Прежде чем что-то подключать, убедимся что приложение работает:
- Открой OpenFlash
- Нажми кнопку "Mock" (вверху слева)
- Нажми "Scan"
- Увидишь "OpenFlash Mock Device" — нажми "Connect"
- Нажми "Detect Chip" — покажет симулированный чип
- Нажми "Dump NAND" — смотри как "читаются" фейковые данные
- Исследуй вкладки: Hex View, Bitmap, Analysis, AI
Если это работает — софт готов!
Pico нужна специальная прошивка чтобы работать как программатор.
- Иди на github.com/openflash/openflash/releases
- Скачай
openflash-rp2040.uf2(илиopenflash-rp2350.uf2для Pico 2)
- Зажми кнопку BOOTSEL на Pico (единственная кнопка на плате)
- Удерживая кнопку, воткни USB кабель в компьютер
- Отпусти кнопку — Pico появится как USB-диск "RPI-RP2"
-
Перетащи файл
.uf2на этот диск - Pico перезагрузится автоматически — диск исчезнет, это нормально!
- Открой OpenFlash
- Убедись что "Mock" НЕ выбран
- Нажми "Scan"
- Должен появиться "OpenFlash Device" — успех!
Если не видишь:
- Попробуй другой USB кабель (некоторые только для зарядки)
- Попробуй другой USB порт
- Перепрошей прошивку
Есть разные типы флеш-чипов, каждый с разными подключениями:
| Тип | Проводов | Где встречается |
|---|---|---|
| SPI NAND | 4-6 | Роутеры, IoT устройства |
| SPI NOR | 4-6 | BIOS чипы, мелкие устройства |
| Parallel NAND | 14+ | Старые устройства, большие объёмы |
| eMMC | 4-6 | Телефоны, планшеты, новые устройства |
Начни с SPI (4 провода) — это проще всего!
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
- Всегда перепроверяй перед включением
Давай сделаем простое чтение SPI NOR флеш. Эти чипы распространены и просты.
Хорошие цели для практики:
- Старый роутер который не нужен
- USB флешка (внутри SPI NOR)
- Arduino плата (есть SPI флеш для загрузчика)
- Любая мёртвая электроника с 8-ногим чипом
Ищи 8-ногий чип с маркировкой типа:
- W25Q... (Winbond)
- MX25L... (Macronix)
- GD25Q... (GigaDevice)
- IS25LP... (ISSI)
Запиши полный номер!
Если чип ещё на плате (чтение in-circuit):
- Полностью обесточь устройство
- Подключи провода к ногам чипа (используй тестовые клипсы или аккуратную пайку)
- Не запитывай оригинальное устройство — только питание от Pico
Если чип выпаян:
Используй макетку или SOIC-8 адаптер:
Pico SPI Flash
┌─────────────┐ ┌─────────┐
│ GP16 ───────┼────────┼─ DO │
│ GP17 ───────┼────────┼─ CS# │
│ GP18 ───────┼────────┼─ CLK │
│ GP19 ───────┼────────┼─ DI │
│ 3V3 ───────┼────────┼─ VCC │
│ GND ───────┼────────┼─ GND │
└─────────────┘ └─────────┘
- Открой OpenFlash
- Нажми "Scan" → выбери устройство → "Connect"
- Выбери интерфейс: "SPI NOR" (выпадающий список вверху)
- Нажми "Detect Chip"
- Если показывает инфо о чипе → отлично!
- Если "Unknown" → проверь подключение, попробуй снова
- Нажми "Dump"
- Выбери куда сохранить файл
- Дождись завершения
- Теперь у тебя есть бэкап чипа!
- Иди во вкладку "Hex View" — должны быть данные (не всё FF или 00)
- Иди во вкладку "Analysis" — определит что внутри
- Иди во вкладку "AI" — получи умный анализ
Hex View показывает сырые байты. Ищи:
- Текстовые строки (читаемые слова)
- Повторяющиеся паттерны
- Всё
FF= пустые/стёртые области
Вкладки Analysis и AI расскажут:
- Какие файловые системы внутри (SquashFS, JFFS2 и т.д.)
- Где разные секции (загрузчик, ядро, rootfs)
- Сжаты или зашифрованы ли данные
- Потенциальные проблемы (bad block'и, повреждения)
Если OpenFlash обнаружил файловую систему, можно извлечь файлы внешними инструментами:
-
binwalk —
binwalk -e dump.bin - jefferson — для JFFS2
- ubireader — для UBIFS
- sasquatch — для SquashFS
- Внеси изменения в файл дампа
- В OpenFlash нажми "Write"
- Выбери изменённый файл
- Включи "Verify after write"
- Дождись завершения
- Проверь все 6 проводов подключены
- Убедись что VCC идёт на 3V3 (не 5V!)
- Попробуй поменять местами DI и DO (легко перепутать)
- Проверь холодные пайки
- Чип может быть мёртв
- Чип может быть пустой (стёртый)
- Чип может быть мёртв
- Проблема с подключением — проверь соединения
- Точно проблема с подключением
- Проверь GND соединение
- Проверь линию данных (DO)
Иногда да (in-circuit чтение), но:
- Другие компоненты могут мешать
- Нужно обесточить оригинальное устройство
- Надёжнее выпаять
Варианты:
- Используй тестовые клипсы (SOIC-8 clip) — пайка не нужна
- Потренируйся на мусорной электронике
- Посмотри туториалы на YouTube
- Попроси друга который шарит в электронике
Скорее всего да. Делай это только с:
- Устройствами которые тебе принадлежат
- Устройствами без гарантии
- Устройствами которыми готов рискнуть
Теперь когда понимаешь основы:
- Подключение железа — детальные схемы для всех типов чипов
- Поддерживаемые чипы — проверь есть ли твой чип в базе
- Решение проблем — когда что-то не работает
- FAQ — ещё вопросы и ответы
| Термин | Значение |
|---|---|
| Flash (флеш) | Тип памяти, сохраняющий данные без питания |
| NAND | Тип флеш-памяти для больших объёмов |
| NOR | Тип флеш-памяти для малых объёмов и исполнения кода |
| SPI | Последовательный интерфейс, 4 провода |
| Parallel | Интерфейс с 8+ линиями данных одновременно |
| eMMC | Флеш + контроллер в одном корпусе (как в телефонах) |
| Dump (дамп) | Копия всех данных с чипа |
| Firmware (прошивка) | Софт во флеш-памяти, который запускает устройство |
| Brick (кирпич) | Устройство которое не загружается (как кирпич — бесполезно) |
| ECC | Коррекция ошибок — исправляет битовые ошибки во флеш |
| Bad block | Секция флеш-памяти которая повреждена и непригодна |
У тебя получится! Начни с простого, учись по ходу.
Вопросы? GitHub Discussions