ESP32 – Extraer el código de una ESP32 y volcarlo en otra unidad igual

por | 20 febrero, 2025

¿Es posible realizar esto? Obviamente me refiero en el caso de no tener disponible el código fuente. Imaginemos que disponemos de un dispositivo electrónico basado en ESP32 que no funciona, y disponemos de otra unidad igual que sí funciona, y sospechamos que el firmware puede estar corrupto.

En primer lugar podemos extraer el firmware si la ESP32 no tiene protecciones activadas. Para ello debemos conectarla por serie al ordenador con el cable USB, y utilizar la utilidad esptool.py.

esptool.py –chip esp32 read_flash 0x00000 0x400000 firmware_backup.bin

Esto creará un archivo firmware_backup.bin con el contenido del flash.

La utilidad detecta el puerto COM donde está conectado el ESP32. Ahora para volcarlo en otro módulo igual:

esptool.py –chip esp32 write_flash -z 0x1000 firmware_backup.bin


En cualquier caso, si se activó el Flash Encryption o el Secure Boot, no se podrá extraer el código de manera directa. Estos mecanismos evitan la lectura de la memoria flash para proteger el código contra copias no autorizadas.

Si esptool no está instalado podemos instalarlo con pip:

pip install esptool

En caso de Windows, normalmente el ejecutable de esptool se encuentra en un path de tipo:

C:\Users\user\AppData\Local\Programs\Python\Python310\Scripts>

Podemos navegar allí y ejecutar algo como:

esptool.exe –chip esp32 read_flash 0x00000 0x400000 firmware_backup.bin

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *