¿Hay algún método posible para identificar secuencias de bytes que contengan texto sin formato? [cerrado]

1

Quiero implementar un algoritmo para identificar automáticamente alguna información de texto sin formato de secuencias de bytes. Por ejemplo:

6d 6c 70 00 00 00 01 d0 03 05 00 00 00 00 00 00 mlp..... ........ 27 14 00 00 00 00 01 a7 e5 1a 00 2c 62 73 4a 30 '....... ...,bsJ0 52 63 63 44 4c 34 4a 76 4b 41 52 36 36 30 41 36 RccDL4Jv KAR660A6 77 7a 48 58 78 52 4b 52 58 57 50 42 4d 6f 77 4c wzHXxRKR XWPBMowL 52 34 6d 37 6d 57 67 3d 00 00 00 00 00 00 00 01 R4m7mWg= ........ cc b5 4b d4 41 2e e4 42 48 c2 73 bf 2e 40 68 4f ..K.A..B H.s..@hO 28 9f 24 c0 c7 23 ab af 1d d2 f3 fb aa 15 01 c3 (.$..#.. ........ 06 55 83 a7 c3 3a 68 1d 16 ee 7f 01 9a 51 39 1b .U...:h. .....Q9. 0a c9 64 2a 59 ad 4a e7 b9 af 7c 08 29 0c 1d 0b ..d*Y.J. ..|.)... e9 39 9b d3 c3 3f 38 82 20 c7 d1 81 62 cc 7b 6f .9...?8. ...b.{o 5e 8c 45 ae 5d ec 34 09 2d ec 8a 33 7f 35 e5 05 ^.E.].4. -..3.5.. bf e5 77 7d c4 76 e2 2e 63 1e 21 ef bc 97 d7 df ..w}.v.. c.!..... 2a fb 25 df b0 54 e0 b8 4a 42 36 1f dd d1 7f b9 *.%..T.. JB6.....

Estos datos de volcado hexadecimal contienen datos codificados en base64, ¿hay algún método posible para identificar estos datos que parezcan texto sin formato de las secuencias de bytes?

    
pregunta Joy 27.05.2017 - 02:22
fuente

2 respuestas

0

Es difícil decirlo :) La cadena puede ser una cadena ASCII, una cadena Unicode, una cadena de bytes, lo que sea. Realmente depende de lo que estés tratando de lograr.

En el caso de base64 es fácil, porque solo 64 caracteres son válidos para ser incluidos en la cadena base64: ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 + /, adicionalmente puede haber separador "="

Entonces, lo que puede hacer es comparar el byte de datos por byte y verificar si el byte coincide con uno de los caracteres en el conjunto de caracteres definido. Si es así, agréguelo a la cadena, si no, imprima la cadena previamente recopilada, configúrela en vacío y continúe.

Otra forma es usar alguna herramienta como lo recomienda @TessellatingHeckler. Lo recomendaría también porque no se podrá lograr por su cuenta cuando se trate de UTF o cualquier otra codificación de caracteres.

Editar: olvidé mencionar que nunca será posible recopilar cadenas válidas solo ya que algunas secuencias de bytes aleatorias que parecen cadenas no serán una cadena válida al final. O puedes venir con alguna red neuronal;) los humanos pueden reconocerlo fácilmente, ¿verdad? :)

    
respondido por el Fis 27.05.2017 - 07:09
fuente
-1

Sí hay. Lo más simple, por supuesto, es buscar palabras clave con espacios a su alrededor.

Primero querrá OR el binario con un carácter de espacio para convertir todo el texto en mayúsculas.

Puede buscar frecuencias de palabras y pistas de frecuencia de letras .

Sobre este tema, lo referiré a la mejor reseña que conozco, y tiene que ver con conocer los formatos de encabezado de los mensajes que llevaron a romper el código Enigma.

Esto realmente es una buena lectura sobre el tema:

Cryptanalysis of the Enigma

    
respondido por el SDsolar 27.05.2017 - 03:29
fuente

Lea otras preguntas en las etiquetas