Binary bir dosyayı okunabilir text haline getirmek

taydin

Timur Aydın
Staff member
Katılım
24 Şubat 2018
Mesajlar
13,762
Elinizde binary bir dosya varsa, dosyadaki her bir byte'ın değerinin ne olduğunu görmek için bir çeşit hex editör lazım. Veya bu binary dosyadaki her bir byte'ın text olarak ifade edildiği yeni bir dosya hazırlanabilir. Linux'ta bunu çok kolay yapmayı sağlayan ve birçok esneklik sunan od (object dump) programı var.

Bir örnek yapalım. İçinde 256 tane 0 byte olan bir binary dosya oluşturalım. Sonra da bunun text karşılığını elde edelim.

Bash:
[ta@bonsai ~]$ dd if=/dev/zero of=null.bin bs=256 count=1
1+0 records in
1+0 records out
256 bytes copied, 0.000264294 s, 969 kB/s
[ta@bonsai ~]$
[ta@bonsai ~]$
[ta@bonsai ~]$ ls -al null.bin
-rw-r--r-- 1 ta ta 256 Nov  3 15:59 null.bin
[ta@bonsai ~]$ od -Ax -v -t x1 null.bin > null.txt
[ta@bonsai ~]$ cat null.txt
000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
000100
[ta@bonsai ~]$
 

taydin

Timur Aydın
Staff member
Katılım
24 Şubat 2018
Mesajlar
13,762
Aynı şeyi içerisinde rastgele byte'lar olan 256 byte'lık dosya ile yapalım:

Bash:
[ta@bonsai ~]$ dd if=/dev/urandom of=random.bin bs=256 count=1
1+0 records in
1+0 records out
256 bytes copied, 0.000214611 s, 1.2 MB/s
[ta@bonsai ~]$ ls -al random.bin
-rw-r--r-- 1 ta ta 256 Nov  3 16:08 random.bin
[ta@bonsai ~]$ od -Ax -v -t x1 random.bin > random.txt
[ta@bonsai ~]$ cat random.txt
000000 e0 6a 7f 9b ea 11 fd 49 76 99 30 4c 83 68 79 8b
000010 72 69 7e cc 27 20 02 9d 3c 86 de 77 b1 14 5c b5
000020 7e 02 fe 46 02 5c d5 a2 1e 5c cd e3 2f c2 95 35
000030 b8 a1 a2 e2 dd bc 33 6c d6 dd 8b 9f 86 52 aa 7f
000040 d3 4f d7 f0 36 b1 a4 82 8f e3 a6 76 ea f6 f9 ec
000050 08 ee d1 e1 04 f6 c3 a9 d2 15 13 cc 7d 87 ef ba
000060 39 ef 77 74 4f e2 a4 5d e4 68 c5 0e 51 58 19 de
000070 65 13 73 82 0f f7 90 88 29 11 f0 ff d5 4c ef 45
000080 73 9e 45 69 d8 28 06 db d7 e3 fc 83 1b 62 53 00
000090 8b 06 d1 02 96 59 58 ea 4f 98 16 a6 71 c4 9e ae
0000a0 b1 3f 41 92 20 22 e2 73 5b 5c c6 88 69 65 1c 4a
0000b0 a3 68 04 b3 49 ab 9c 61 1c 5d ec 22 41 20 9c 41
0000c0 3d 0c 80 1a d2 18 44 98 8a 7e f9 bf d3 94 9a 02
0000d0 a3 32 75 87 8d 5c 78 51 6c ac 25 f9 02 40 ed bb
0000e0 49 81 d1 76 70 10 68 a4 b1 d1 ea 1c 5f 03 59 85
0000f0 11 14 75 f9 06 0a b3 78 a3 3d 4d 86 dd fd 33 4b
000100
[ta@bonsai ~]$
 

taydin

Timur Aydın
Staff member
Katılım
24 Şubat 2018
Mesajlar
13,762
Bu şekilde bir binary dosyayı text olarak ifade edersek, örneğin iki binary dosya arasındaki farka bir text diff programı ile bakabiliriz. Binary dosyalar üzerinde farka bakma, değişiklik yapma ve inceleme imkanı sağlayan programlar olsa bile, doğrudan text dosya üzerinde çalışmak çok daha fazla esneklik ve imkan sağlıyor.
 
Top