Dump de memória flash
A cópia da memória de um aparelho embarcado traz o firmware e, numa partição própria, a configuração dele.
Aparelhos pequenos (roteadores, sensores, rádios, placas como o ESP32) guardam tudo num chip de memória flash. Um perito lê o chip inteiro, com um programador ou pela porta serial, e trabalha na cópia: o dump, um arquivo cru em que o byte 0 é o primeiro byte do chip.
O dump é dividido em partições. No ESP32, a tabela fica em 0x8000, com entradas de 32 bytes que começam com AA 50, seguidas de tipo, subtipo, início, tamanho e nome:
| Partição típica | O que guarda |
|---|---|
nvs |
pares chave e valor pequenos (versão do firmware, contadores, às vezes senhas de Wi-Fi) |
app0, app1 |
o firmware (o programa) e uma segunda cópia para atualização |
spiffs |
um sistema de arquivos com a configuração e os dados do usuário |
coredump |
a memória no momento de um travamento, quando houve |
A partição de arquivos costuma ser LittleFS ou SPIFFS. Para abrir: recorte a partição com dd (skip e count em blocos de 4096 bytes) e extraia com littlefs-python extract part.bin saida --block-size 4096 (pacote do pip). Os arquivos de configuração costumam ser binários estruturados, como protobuf, que protoc --decode_raw ou o Protobuf Decode do CyberChef (abre em nova aba) mostram campo a campo. Sem ferramenta nenhuma, strings -t x dump.bin já revela nomes, servidores e versões, e onde eles estão.