Tonton Jean-Mi a remporté le championnat du monde de jokari fin Decembre. Malheureusement pour lui les seules preuves de cet exploit se retrouvent sur une carte compaq flash fabriquée en 1990 et ayant servi de /home d'un venerable serveur hotmail de 1994 a 1997…(je ne poursuivrais pas cette histoire tragique)
dmesg dit:
wdc2 at pcmcia1 function 0 "SAMSUNG, Rev 1.15, " port 0xa040/16 wd1 at wdc2 channel 0 drive 0: <SAMSUNG CF/ATA> wd1: 4-sector PIO, LBA, 61MB, 125952 sectors wd1(wdc2:0:0): using BIOS timings
la CF s'appellera sur mon OpenBSD wd1
on va essayer d'en savoir un peu plus:
$ sudo fdisk wd1 fdisk: sysctl(machdep.bios.diskinfo): Device not configured Disk: wd1 geometry: 246/16/32 [125952 Sectors] Offset: 0 Signature: 0xAA55 Starting Ending LBA Info: #: id C H S - C H S [ start: size ] ------------------------------------------------------------------------ *0: 06 0 1 1 - 244 15 32 [ 32: 125408 ] DOS > 32MB 1: 00 0 0 0 - 0 0 0 [ 0: 0 ] unused 2: 00 0 0 0 - 0 0 0 [ 0: 0 ] unused 3: 00 0 0 0 - 0 0 0 [ 0: 0 ] unused
.oO(bon signe deja on peut voir une partition FAT: ce n'est pas qu'une brique)
on tente le diable:
$ sudo mount /dev/wd1i /mnt mount_msdos: /dev/wd1i on /mnt: Input/output error
et dmesg dit alors:
wd1i: aborted command reading fsbn 0 (wd1 bn 32; cn 0 tn 1 sn 0), retrying wd1i: aborted command reading fsbn 0 (wd1 bn 32; cn 0 tn 1 sn 0), retrying wd1i: !#%@!#%DTC%!#%! wd1i: aborted command reading fsbn 0 (wd1 bn 32; cn 0 tn 1 sn 0)
.oO(c'est un peu pour ca que tonton nous l'a confiée)
revenons en arriere:
$ sudo fdisk wd1 fdisk: sysctl(machdep.bios.diskinfo): Device not configured Disk: wd1 geometry: 246/16/32 [125952 Sectors] Offset: 0 Signature: 0xAA55 Starting Ending LBA Info: #: id C H S - C H S [ start: size ] ------------------------------------------------------------------------ *0: 06 0 1 1 - 244 15 32 [ 32: 125408 ] DOS > 32MB 1: 00 0 0 0 - 0 0 0 [ 0: 0 ] unused 2: 00 0 0 0 - 0 0 0 [ 0: 0 ] unused 3: 00 0 0 0 - 0 0 0 [ 0: 0 ] unused
pour resumer cette compaq flash possede une capacite d'environ 64MB (du secteur 0 a 125952) le tout est quasi totalement occupé logiquement par une partition unique wd1i (du secteur 32 a 125408) qui refuse d'etre montee conventionnelement.
$ sudo dd if=/dev/wd1c of=imagedtc dd: /dev/wd1c: Input/output error 32+0 records in 32+0 records out 16384 bytes transferred in 5.276 secs (3105 bytes/sec)
.oO(*protch* on remarque tout de meme qu'il a pu lire les 32 premiers secteurs)
Round1: secteurs 0→32 ok, secteur 33 dead
il y a peu de chance de trouver une preuve dans les 32 premiers secteurs d'une CF…
On tatonne avec l'option skip de dd pour sauter cet obstacle et on garde espoir:
$ sudo dd skip=48 if=/dev/wd1c of=imagecf dd: /dev/wd1c: Input/output error 0+0 records in 0+0 records out 0 bytes transferred in 2.623 secs (0 bytes/sec)
.oO(bouhouhou ca part mal tout doit etre foutu derriere on va tous crever ici..)
Round2: secteur 33→48 dead
Allons on ne perd pas espoir il y en a pleins des secteurs !
$ sudo dd skip=64 if=/dev/wd1c of=imagecf dd: /dev/wd1c: Input/output error 35808+0 records in 35808+0 records out 18333696 bytes transferred in 21.953 secs (835100 bytes/sec)
.oO(mais que vois-je ??? le disque s'illumine…il reste de la vie par contre il se *protch* a nouveau au secteur 35873)
Round3: secteurs 65→35872 ok
et on n'oublie pas de mettre immediatement de cote l'image recuperee au cas ou…
On tatonne de nouveau avec l'option skip de dd :
$ sudo dd skip=35888 if=/dev/wd1c of=imagecf2 dd: /dev/wd1c: Input/output error 0+0 records in 0+0 records out 0 bytes transferred in 2.622 secs (0 bytes/sec)
.oO(bouhou)
$ sudo dd skip=35904 if=/dev/wd1c of=imagecf2 dd: /dev/wd1c: Input/output error 90048+0 records in 90048+0 records out 46104576 bytes transferred in 47.314 secs (974431 bytes/sec)
.oO(victoire et on arrive jusqu'a la fin de la CF: le secteur 125952 ce qui explique ici le message d'erreur)
note: on aurait pu eviter le message d'erreur en precisant -count=90048
Round 4: secteurs 35904 → 125952 ok
On avait donc une CF de 125952 secteurs avec les secteurs de 33 a 64 et de 35873 a 35904 defectueux et on se retrouve avec 2 fichiers images de respectivement 17,5MB et 44M.
CF pwned
on recupere ces petites lignes que l'on compile:
http://www.cs.washington.edu/homes/oskin/saveimg.html
et on l'utilise avec les 2 fichiers que l'on vient de recuperer.
.oO(et on imagine l'air gené de tonton quand on va lui dire qu'il n'y avait pas que des images de jokari sur la CF.)