Brazilracerxdl/stm32f0-pico-dump
STM32F0x Protected Firmware Dumper with Raspberry Pi Pico
Thành tựu nổi bật
Những danh hiệu mới nhất của dự án
#1 Repository Của Tháng
#1 Repository Của Tháng
#1 Repository Của Tháng
⚡ Đọc firmware STM32F0x được bảo vệ bằng Raspberry Pi Pico
Khai thác lỗi race-condition trên bus SWD để trích xuất firmware cấp bảo vệ Level 1 — chỉ trong vài dòng lệnh với Pi Pico.
Dự án này là proof of concept cho việc trích xuất firmware từ các chip STM32F0x đã được bật Readout Protection. Thay vì dùng thiết bị dò SWD chuyên dụng (có giao tiếp nhiều khiến MCU kích hoạt cơ chế bảo vệ), công cụ lợi dụng lỗi race-condition trên bus để đọc trực tiếp một DWORD 32-bit trước khi cơ chế bảo vệ kích hoạt. Dự án sử dụng Raspberry Pi Pico (RP2040) làm nền tảng chính và Platform.IO để biên dịch, giúp loại bỏ hàng tá dependency phức tạp mà các PoC dùng MBED SDK thường yêu cầu.
✨ Điểm nổi bật
- Khai thác SWD race-condition: Đọc trực tiếp firmware mà không cần giao tiếp nhiều với MCU, tránh kích hoạt cơ chế bảo vệ.
- Hỗ trợ Pi Pico (RP2040): Nền tảng phổ biến, giá rẻ, dễ tiếp cận hơn nhiều so với thiết bị dò SWD chuyên dụng.
- Platform.IO build: Biên dịch đơn giản bằng
pio run, đầu ra là file.uf2flash trực tiếp vào Pico. - Kiểm soát reset & power: Yêu cầu Pico điều khiển cả chân reset và nguồn của target, vì Readout Protection cần power-cycle để reset.
- Chỉ hoạt động Level 1: Level 2 Readout Protection hoàn toàn chặn SWD, không thể khai thác bằng phương pháp này.
- Script
dump.pyđi kèm: Hỗ trợ ghi output ra file thay vì chỉ in ra serial. - Cổng từ paper gốc: Dựa trên nghiên cứu "Shedding too much Light on a Microcontroller's Firmware Protection" của Johannes Obermaier (Fraunhofer AISEC), giữ nguyên license MIT.
💡 Vì sao đáng chú ý
Phương pháp này khai thác một lỗ hổng kiến trúc phần cứng thực sự trên bus SWD của STM32F0x — không phải brute-force hay lỗ phần mềm. Ý tưởng cốt lõi là "nói ít, đọc nhanh": các SWD probe thông thường giao tiếp quá nhiều với MCU, khiến cơ chế readout protection kích hoạt và khóa quyền truy cập. Pico chỉ cần đọc một DWORD duy nhất trước thời điểm đó.
Dự án đặc biệt hữu ích cho các nhà nghiên cứu firmware và security analyst muốn kiểm tra mức độ bảo vệ của thiết bị STM32F0x trong phạm vi hợp pháp. Tuy nhiên, cần lưu ý rằng công cụ chỉ hoạt động với Level 1 Readout Protection — nếu chip đã được bật Level 2, SWD bị vô hiệu hóa hoàn toàn và không có cách nào đọc lại firmware.
#STM32F0 #SWD #FirmwareDump #RaspberryPiPico #PlatformIO #TiniX
Similar Projects
Discover other similar projects and AI models.
Raspberry Pi Pico Arduino core, for all RP2040 and RP2350 boards
NES Emulator with SD card and menu support for the Raspberry PI Pico, Pico 2 and other RP2040/RP2350 based microcontrollers. Play your games from SD card on a HDMI display.
CasaOS - A simple, easy-to-use, elegant open-source Personal Cloud system.
Interactive roadmaps, guides and other educational content to help developers grow in their careers.
all-MiniLM-L6-v2 This is a sentence-transformers(https://www.SBERT.net) model: It maps sentences & paragraphs to a 384 dimensional dense vector space and can be used for tasks like clustering or semantic search. Usage (Sentence-Transformers) Using t...
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
Python tool for converting files and office documents to Markdown.