Pregunta

El método más común para dañar archivos comprimidos es realizar sin darse cuenta una transferencia FTP en modo ASCII, lo que provoca una destrucción de muchos a uno de los caracteres CR y/o LF.

Obviamente, hay pérdida de información y la mejor manera de solucionar este problema es transferir nuevamente, en modo binario FTP.

Sin embargo, si el original se pierde y es importante, ¿qué tan recuperables son los datos?

[En realidad, ya sé cuál creo que es la mejor respuesta (es muy difícil, pero a veces es posible; publicaré más más adelante) y las que no son respuestas comunes (muchos programas disponibles para reparar CRC sin reparar datos). ), pero pensé que sería interesante probar esta pregunta durante el período beta de stackoverflow y ver si alguien más ha seguido el camino de recuperación exitosa o ha descubierto herramientas que no conozco.]

¿Fue útil?

Solución

De Software Bukys

Se sabe que aproximadamente 1 de cada 256 bytes se corrompen, y se sabe que la corrupción ocurre solo en bytes con el valor ' 012'.Entonces, la tasa de error de byte es 1/256 (0.39% de la entrada), y 2/256 bytes (0.78% de entrada) son sospechosos.Pero dado que solo se ven afectados tres bits por byte destrozado, la tasa de error de bit es solo 3/(256*8):0.15% es malo, 0.29% es sospechoso.

...

Un error en la entrada comprimida interrumpe el proceso de descompresión para todos los bytes posteriores ... el hecho de que la salida descomprimida es reconociblemente mala tan rápido es causa de esperanza: una búsqueda de la respuesta correcta puede identificar respuestas incorrectas rápidamente.

En última instancia, se combinaron varias técnicas para extraer con éxito datos razonables de estos archivos:

  • Análisis de campos y cadenas entrecomilladas específicos del dominio
  • Aprendizaje automático a partir de datos anteriores con baja probabilidad de daño
  • Tolerancia al daño del archivo debido a otras causas (p. ej.disco lleno mientras se registra)
  • Lookahead para guiar la búsqueda por los caminos de mayor probabilidad

Estas técnicas identifican el 75% de las reparaciones necesarias con certeza, y el resto se exploran más alta probabilidad primero, de modo que las reconstrucciones plausibles se identifican de inmediato.

Otros consejos

Podrías intentar escribir un pequeño script para reemplazar todos los CR con CRLF (suponiendo que la dirección de eliminación sea CRLF a CR), intercambiándolos aleatoriamente por bloque hasta que tengas el crc correcto.Suponiendo que los datos no fueran particularmente grandes, supongo que es posible que no utilice toda su CPU hasta que se complete la muerte por calor del universo.

Como definitivamente hay una pérdida de información, no sé si existe una manera mejor.La pérdida en la dirección CR a CRLF podría ser un poco más fácil de revertir.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top