Po drátě 6: Řešení úlohy č. 62

Hmm, velký soubor s příponou bz2. Tak to rozbalíme a podíváme se na výsledek:

$ bzip2 -d uloha.bz2
$ file uloha  
uloha: Linux rev 1.0 ext2 filesystem data

Takže filesystem? Zatím to vypadá dost nudně, ale budiž.

$ sudo mount -t ext2 -o loop /tmp/uloha /mnt/
$ l /mnt/  
total 8
drwxr-xr-x  2 jack users 2048 2011-12-12 23:08 ./
drwxr-xr-x 24 root root  4096 2012-01-10 12:10 ../
-rw-r--r--  1 root root    20 2011-12-12 23:08 part-two

Soubor 'part-two'. Zajímavé, ale kde je část jedna? A navíc ten soubor obsahuje nějaký binární blábol. Nejdřive se porozhlédneme po první části:

$ strings /tmp/uloha | less

Vyhledáme 'part-one' a vidíme:

...
part-one
*Hacker
*Linux UDFFS
47}3
dZdu
...

To skoro vypada jako hlavička z UDF filesystemu. No tak to zkusíme:

$ sudo mount -t udf -o loop /tmp/uloha /mnt/
$ l /mnt/  
total 4
drwxr-xr-x  3 root root  140 2011-12-21 13:27 ./
drwxr-xr-x 24 root root 4096 2012-01-10 12:10 ../
drwxr-xr-x  2 root root   40 2011-12-21 13:27 lost+found/
-rw-r--r--  1 root root   20 2011-12-21 15:23 part-one

Hurá! Máme část jedna. Ale zase je v ní jen binární blábol. Takže máme dvakrát dvacet bytů binarního blábolu. Jak to zkombinovat do hesla? S trochou zkoušení a věštění zjistíme, že XOR je ta správná funkce.

Autorem úlohy je Honza Kára.

Re: Po drátě 6: Řešení úlohy č. 62 ondrej.vodacek (25. 1. 2012 - 14:54) Sbalit(5)
Pro zjištění filesystému šlo použít:
# wipefs uloha
offset type
----------------------------------------------------------------
0x8001 udf [filesystem]
LABEL: Datel132

0x438 ext2 [filesystem]
UUID: 184be885-f3ff-4bec-ba59-bd0c96e3320c
Re: Po drátě 6: Řešení úlohy č. 62 gimli2 (25. 1. 2012 - 15:07) Sbalit(4)
To same vraci disktype:
disktype uloha

--- uloha
Regular file, size 32 MiB (33554432 bytes)
UDF file system
Sector size 2048 bytes
Volume name "Datel132"
Ext2 file system
UUID 184BE885-F3FF-4BEC-BA59-BD0C96E3320C (DCE, v4)
Volume size 32 MiB (33554432 bytes, 16384 blocks of 2 KiB)

----

Ale budu asi zlej za to pouhe xornuti tech binarnich kravin. Predpokladal jsem, ze tak zadarmo to nebude a nezkusil to! Takze padlo nekolik hodin na zbytecne pokusy o vsemozne krkolomnosti. Radeji se nebudu rozepisovat, jeste by to mohlo byt za rok pouzito proti me. ;-)
Re: Po drátě 6: Řešení úlohy č. 62 Jan Hadrava (25. 1. 2012 - 16:21) Sbalit(3)
Kdyz jsem to primountoval jako UDF a objevil part-one, tusil jsem, ze mam najit part-two a xorovat...
Ale jak jsem mohl nevyzkouset ext2? Ale neeee! Takovy dobry a normalni souborovy system... a ja pripojim jenom UDF.
Re: Po drátě 6: Řešení úlohy č. 62 gimli2 (26. 1. 2012 - 10:43) Sbalit(2)
Kdyz by jsi to z lenosti mountnul jako -t auto, tak by bys mel nejdriv part-two. ;-)
Re: Po drátě 6: Řešení úlohy č. 62 Jan Hadrava (26. 1. 2012 - 18:08) Sbalit(1)
Ne, je to se mnou jeste horsi, daval jsem to nejdriv bez -t (zrejme to same jako -t auto).
Ale ja si neprecetl chybu. Mount me to napsal jasne:

mount: /dev/loop0: more filesystems detected. This should not happen,
use -t <type> to explicitly specify the filesystem type or
use wipefs(8) to clean up the device.

mount: you must specify the filesystem type