Un decodificador forense de las codificaciones binarias de la familia de almacenes KV.
Artefactos soportados y lo que se expande:
· Redis RDB — magic "REDIS" + versión ASCII, campos AUX (opcode 0xFA), SELECTDB (0xFE), RESIZEDB (0xFB), opcodes de expiración FD/FC, todos los tipos de valor desde cadenas simples (int8/16/32 y comprimidas con LZF) hasta list, set, zset (puntuaciones ASCII y binarias double), hash, zipmap, ziplist, intset, quicklist v1 y v2, y listpack hash/zset/set (tipos 16/17/18/20), con verificación del tráiler CRC-64 Jones.
· WAL LevelDB / RocksDB — bloques de 32 KiB, cabeceras de registro de 7 bytes (CRC32C enmascarado, longitud u16, tipos FULL/FIRST/MIDDLE/LAST), trailers de ceros.
· SSTable LevelDB / RocksDB — footer heredado de 48 bytes (BlockHandles metaindex/index en varint64 rellenados a 40 bytes + magic little-endian 0xdb4775248b80fb57 / 0x88e241b785f4cff7), compresión por prefijos con puntos de reinicio.
· Protocolo binario Memcached — cabecera de 24 bytes (magic 0x80/0x81, opcode, reparto key/extras/value, vbucket o estado, opaque, CAS), extras por opcode como flags + expiración.
· BoltDB — cabecera de página de 16 bytes y magic de meta página 0xed0cdaed; LMDB — flags de cabecera MDB_page (el formato es famoso por no tener número mágico).
Pega una segunda instantánea RDB para obtener un diff del keyspace (claves añadidas/eliminadas/cambiadas/con TTL desplazado) y una matriz de expiración TTL evaluada en el tiempo de referencia elegido.
La ruta RDB está verificada contra dumps reales de redis-server 7.2.4; los tipos de valor de módulos y streams (6/7/15/19/21) se informan pero no se expanden.