Esistono metodi per identificare le sequenze di byte che contengono un testo in chiaro? [chiuso]

1

Voglio implementare un algoritmo per identificare automaticamente alcune informazioni in testo semplice da sequenze di byte. Ad esempio:

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.....

Questo dato di hexdump contiene dati codificati in base64, ci sono metodi possibili per me per identificare questi dati che sembrano testo in chiaro dalle sequenze di byte?

    
posta Joy 27.05.2017 - 02:22
fonte

2 risposte

0

Difficile da dire :) La stringa può essere una stringa ASCII, una stringa unicode, una stringa di byte, qualunque sia. Dipende davvero da cosa stai cercando di ottenere.

Nel caso di base64 è facile, perché solo 64 caratteri sono validi per essere inclusi nella stringa base64: ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 + /, inoltre può esserci un separatore "="

Quindi quello che puoi fare è confrontare i dati byte per byte e verificare se il byte corrisponde a uno dei caratteri nel set di caratteri definito. In tal caso, aggiungilo alla stringa, in caso contrario, stampa la stringa raccolta in precedenza, impostala su vuota e continua.

Un altro modo è utilizzare alcuni strumenti consigliati da @TessellatingHeckler. Lo consiglierei anche perché non sarà realizzabile da solo quando si tratta di UTF o di qualsiasi altra codifica dei caratteri.

Modifica: Ho dimenticato di dire che non sarà mai possibile raccogliere stringhe valide solo perché alcune sequenze di byte casuali che sembrano stringhe non saranno una stringa valida alla fine. Oppure puoi venire con una rete neurale;) Gli umani possono riconoscerlo facilmente, giusto? :)

    
risposta data 27.05.2017 - 07:09
fonte
-1

Sì, ci sono. Il più semplice, naturalmente, è cercare parole chiave con spazi attorno a loro.

Dovrai OR il binario con un carattere di spazio prima di trasformare tutto il testo in maiuscolo.

Puoi cercare frequenze di parola e indizi di frequenza delle lettere .

Su questo argomento ti riferirò alla migliore scrittura che conosco, e ha a che fare con la conoscenza dei formati di intestazione dei messaggi che hanno portato alla rottura del codice Enigma.

Questa è davvero una buona lettura sull'argomento:

Cryptanalysis of the Enigma

    
risposta data 27.05.2017 - 03:29
fonte

Leggi altre domande sui tag