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
# 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. ;-)
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.
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
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