Fórum Root.cz

Hlavní témata => Hardware => Téma založeno: Razmir 20. 12. 2018, 22:24:21

Název: Romozte rozjet RO flashdisk
Přispěvatel: Razmir 20. 12. 2018, 22:24:21
Ahoj mám v ruce flashdisk, který byl údajně jako read only HW klíč k nějakému zařízení nebo co. Zkouším ho přemluvit, aby se na něj dalo i zapisovat.
hdparm -r0 /dev/sda nepomohlo. Teda - teď můžu vytvářet a mazat diskové oddíly, ale na windows skončí pokus o formátování chybou a na linuxu ze zdánlivě souborový systém vytvoří, ale následně není rozpoznán.

hdparm -I /dev/sda je takové dost nešťastné:

Kód: [Vybrat]
/dev/sda:
SG_IO: bad/missing sense data, sb[]:  70 00 05 00 00 00 00 0a 00 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

ATAPI , with removable media
Model Number:       �|��t��L��|��
Serial Number:      ����!���8
                                         u
Firmware Revision:  u����
Standards:
Likely used: 3
Configuration:
DRQ response: unknown.
Packet size: Unknown
cache/buffer size  = unknown
Capabilities:
IORDY(may be)(cannot be disabled)
Buffer size: 16520.0kB bytes avail on r/w long: 65278
DMA: not supported
PIO: pio0

Máte někdo tip, jak ho rozjet?
Název: Re:pomozte rozjet RO flashdisk
Přispěvatel: Uuuu 20. 12. 2018, 22:40:42
A co zkusit primy zapis zda to pujde?

dd if=/dev/urandom of=/dev/sdX count=10000
Název: Re:Romozte rozjet RO flashdisk
Přispěvatel: Razmir 20. 12. 2018, 23:45:28
Vyrobím deset mega náhodných dat:
Kód: [Vybrat]
dd if=/dev/urandom of=./pokus.data bs=1M count=10
10+0 záznamů přečteno
10+0 záznamů zapsáno
10485760 bajtů (10 MB, 10 MiB) zkopírováno, 1,33053 s, 7,9 MB/s
Zapíšu je na začátek disku:
Kód: [Vybrat]
dd if=./pokus.data of=/dev/sda bs=1M
10+0 záznamů přečteno
10+0 záznamů zapsáno
10485760 bajtů (10 MB, 10 MiB) zkopírováno, 0,790271 s, 13,3 MB/s
Přečtu do novýho souboru:
Kód: [Vybrat]
dd if=/dev/sda of=./pokus2.data bs=1M count=10
10+0 záznamů přečteno
10+0 záznamů zapsáno
10485760 bajtů (10 MB, 10 MiB) zkopírováno, 0,860205 s, 12,2 MB/s
A hle, je tam něco jinýho - nevim co, vypadá to náhodně, nejsou to třeba jen nuly
Kód: [Vybrat]
md5sum ./pokus.data
49d3ba85b09a262b1e37e16492dd1969  ./pokus.data
md5sum ./pokus2.data
b8baab349cdc836592adf1d173ec87dd  ./pokus2.data
Název: Re:Romozte rozjet RO flashdisk
Přispěvatel: RDa 20. 12. 2018, 23:46:58
ja mel regularni flashku ktera se po case rozhodla ze bude po zapnuti reaodnly. pres hdparm jsem to mohl presvedcit do RW rezimu, ale to me flashka pak fungovala jen pod Linuxem. Pod win nebo osx to bylo RO a neslo to zformatovat...
Takze jsem dosel do ALZY a vyreklamovali to beze slova na miste.

Pokud je to "hw klic", tak neni jiste zda to je vubec mass storage s flash, nebo to virtualizuje nejaky procesor.

Jestli to je flaska, tak to musis rozebrat, podivat se co je tam za cip, pak stahnout z cerneho trhu tooly pro flashovani firmwaru, a tam mozna najdes option pro "RO by default".

Jednou jsem cetl taky nejaky clanek, jak reklamni flashky meli RO protected prvni partisny. Resi to asi stejny tool.

Tem amaterum co radi "dd" tady never, je videt ze netusi ktera bije. To co resis je vrstva pod tim.
Název: Re:Romozte rozjet RO flashdisk
Přispěvatel: Razmir 20. 12. 2018, 23:54:37
no, k předchozímu pokusu s dd ještě doplním, že pokud jsem zapsal deset mega nul, tak jsem následovně přečetl zase náhodná data.

A mechanicky vypadá dost nedobytně - teda je to otázka síly, ale bude to jistě esteticky nevratný proces :) tak jsem to chtěl zatím odložit, jestli někoho ještě něco nenapadne
Název: Re:Romozte rozjet RO flashdisk
Přispěvatel: David 21. 12. 2018, 00:53:25
pokud jsem zapsal deset mega nul, tak jsem následovně přečetl zase náhodná data
A ta nahodna data po zapsani nul byla stejna, jako po zapsani nahodnych dat (viz vyse) nebo tam bylo neco jineho? Pokud tam bylo neco jineho, tak IMHO neni ani RO ani RW, ale RR (Read Random) cili vhodna tak akorat k fyzickemu odeslani do /dev/null.
Název: Re:Romozte rozjet RO flashdisk
Přispěvatel: moje jméno je rezervované 21. 12. 2018, 07:02:25
Tady je ten zmiňovaný článek. Snad to pomůže. Už je 5 let starý
https://blog.root.cz/svatas/kdyz-usb-disk-neni-usb-disk/
Název: Re:Romozte rozjet RO flashdisk
Přispěvatel: LivingLegend 21. 12. 2018, 08:30:04
Hele a zkoušel jsi tomu přehrát firmware? Já něco podobného řešil s FLASH od Dellu kde byl jen system a reed only...

Tímhle https://www.usbdev.ru/files/chipgenius/ (https://www.usbdev.ru/files/chipgenius/) jsem si zjistil FW ID. A podle FW ID jsem použil tady https://www.usbdev.ru/files/smi/smimptool/ (https://www.usbdev.ru/files/smi/smimptool/) tam narval odemčený FW...
Název: Re:Romozte rozjet RO flashdisk
Přispěvatel: Lol Phirae 21. 12. 2018, 08:42:14
Hele a zkoušel jsi tomu přehrát firmware?

Viz... (https://www.youtube.com/watch?v=prEVzshXY6A)
Název: Re:Romozte rozjet RO flashdisk
Přispěvatel: ? 21. 12. 2018, 09:06:11
pokud jsem zapsal deset mega nul, tak jsem následovně přečetl zase náhodná data
A ta nahodna data po zapsani nul byla stejna, jako po zapsani nahodnych dat (viz vyse) nebo tam bylo neco jineho? Pokud tam bylo neco jineho, tak IMHO neni ani RO ani RW, ale RR (Read Random) cili vhodna tak akorat k fyzickemu odeslani do /dev/null.
Mno tak generátor náhodných dat se může taky hodit.
Název: Re:Romozte rozjet RO flashdisk
Přispěvatel: RDa 21. 12. 2018, 10:22:03
Co ti napise dmesg pri pripojeni? (jestli tedy mas zapnuto vypisovani vid/pid/model/sn v kernelu). Pripadne zkus lsusb, lsusb -v ... zajima nas pid/vid a pripadne textovy nazvy, nezminujes ani detekovanou kapacitu.
Název: Re:Romozte rozjet RO flashdisk
Přispěvatel: Razmir 21. 12. 2018, 19:32:49
Tak mám výpis z toho programu ChipGenius:
Je mi podezřelý, že všude se ten flashdisk hlásí jako 16GB, ale ten ChipGenius v něm vidí jen 8GB čip, jestli tomu dobře rozumím.
Kód: [Vybrat]
Description: [E:]Velkokapacitní paměťové zařízení USB(JetFlash Transcend 16GB)
Device Type:        Mass Storage Device

Protocal Version: USB 2.00
Current Speed: High Speed
Max Current: 300mA

USB Device ID: VID = 8564 PID = 1000
Serial Number: ZEU54A71D4HJMM4I

Device Vendor: JetFlash
Device Name: Mass Storage Device
Device Revision: 1100

Manufacturer: JetFlash
Product Model: Transcend 16GB
Product Revision: 1100

Controller Vendor: SMI
Controller Part-Number: SM3270AB - ISP 180329-0AC
Flash ID code:      AD5A14F3 - Hynix - 1CE/Single Channel [MLC] -> Total Capacity = 8GB

Tools on web:       http://dl.mydigit.net/special/up/smi.html

A výpis lsusb -v
Kód: [Vybrat]
Bus 001 Device 015: ID 8564:1000 Transcend Information, Inc. JetFlash
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        64
  idVendor           0x8564 Transcend Information, Inc.
  idProduct          0x1000 JetFlash
  bcdDevice           11.00
  iManufacturer           1 JetFlash
  iProduct                2 Mass Storage Device
  iSerial                 3 ZEU54A71D4HJMM4I
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           32
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              300mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         8 Mass Storage
      bInterfaceSubClass      6 SCSI
      bInterfaceProtocol     80 Bulk-Only
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval             255
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval             255
Device Qualifier (for other device speed):
  bLength                10
  bDescriptorType         6
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        64
  bNumConfigurations      1
Device Status:     0x0000
  (Bus Powered)

A dmesg po připojení:
Kód: [Vybrat]
[ 1717.155826] usb 1-1.3.3: new high-speed USB device number 15 using dwc_otg
[ 1717.288194] usb 1-1.3.3: New USB device found, idVendor=8564, idProduct=1000
[ 1717.288218] usb 1-1.3.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 1717.288232] usb 1-1.3.3: Product: Mass Storage Device
[ 1717.288242] usb 1-1.3.3: Manufacturer: JetFlash
[ 1717.288251] usb 1-1.3.3: SerialNumber: ZEU54A71D4HJMM4I
[ 1717.306783] usb-storage 1-1.3.3:1.0: USB Mass Storage device detected
[ 1717.323459] scsi host0: usb-storage 1-1.3.3:1.0
[ 1718.900926] scsi 0:0:0:0: Direct-Access     JetFlash Transcend 16GB   1100 PQ: 0 ANSI: 4
[ 1718.910346] sd 0:0:0:0: Attached scsi generic sg0 type 0
[ 1718.911758] sd 0:0:0:0: [sda] 30818304 512-byte logical blocks: (15.8 GB/14.7 GiB)
[ 1718.913047] sd 0:0:0:0: [sda] Write Protect is off
[ 1718.913073] sd 0:0:0:0: [sda] Mode Sense: 43 00 00 00
[ 1718.914205] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 1718.929952] sd 0:0:0:0: [sda] Attached SCSI removable disk
Název: Re:Romozte rozjet RO flashdisk
Přispěvatel: Razmir 21. 12. 2018, 20:24:25
Hlásím, že se mi po troše zkoumání nástrojů, na které jste mě zde nasměrovali, podařilo přeflešovat FW a flashka jede!   :)
Díky, borci!  8)
Název: Re:Romozte rozjet RO flashdisk
Přispěvatel: Lol Phirae 22. 12. 2018, 10:16:47
A kolik to teda má kapacitu?  ;D
Název: Re:Romozte rozjet RO flashdisk
Přispěvatel: Razmir 14. 03. 2019, 22:36:13
Tak zkusím obnovit toto vlákno, protože se to nepodařilo úplně na sto procent.
Fleshoval jsem firmware pomocí SMI Mass Production Tool, flashka má nyní neformátovatovanou kapacitu 15480 MB, před přehráním FW měla 15100 MB. Problémem ale je, že nejsou nyní všechny bloky funkční. Tváří  se, že bez problému zapisuje a čte, ale u některých bloků čte nesmysly. Zapsal jsem celou flešku pseudonáhodnými daty, přečetl je zpět, rozdělil na megové intervaly, spočítal checksumy, u několika málo intervalů ty checksumy nesedí, při opakování se chová stejně - stejné bloky jsou špatné.
Takže má otazka zní, může mě někdo nakopnout, jak tu flashku otestovat a flashnout upravený firmware tak, aby nepoužíval nespolehlivé bloky (popř. byly i nějaké dobré rezervní, pokud to jde)?
Název: Re:Romozte rozjet RO flashdisk
Přispěvatel: MKzB 15. 03. 2019, 07:41:41
...nyní má neformátovatovanou kapacitu 15480 MB, před přehráním FW měla 15100 MB. Problémem ale je, že nejsou nyní všechny bloky funkční....
Nejsou ty vadné bloky fejkové? Projeď ji H2testW (https://www.heise.de/download/product/h2testw-50539).
Jednou jsem dostal reklamní fake USB 4GB, reálně 512 MB. Vyzkoušel jsem ledacos a bez úspěchu. Demontáž jsem vzdal, protože byla zalisovaná v plechu a ten v gumě. Nakonec jsem vytvořil za začátku disku partition o nějaký MB menší, než je reálná kapacita. Zbytek jsem nechal volný. Ta partyšna funguje bez problémů. (ovšem vzhledem k velikosti je mimo provoz).
Název: Re:Romozte rozjet RO flashdisk
Přispěvatel: RDa 15. 03. 2019, 10:51:52
Fleshoval jsem firmware pomocí SMI Mass Production Tool, flashka má nyní neformátovatovanou kapacitu 15480 MB, před přehráním FW měla 15100 MB.
:
Takže má otazka zní, může mě někdo nakopnout, jak tu flashku otestovat a flashnout upravený firmware tak, aby nepoužíval nespolehlivé bloky (popř. byly i nějaké dobré rezervní, pokud to jde)?

Ano - SMI tool ma tuhle kontrolu, googli smerem na smi mass production tool bad block over setting - je tam pry nejaka funkce pretest, ktera smaze bad block info, a pak by si to ty spatne bloky melo najit v te fazi skenovani.

Viz: http://flashboot.ru/files/file/454/ .. nekde nize:
Citace
Scan USB (F5):
i.piccy.info/i9/40a90f4d41d97527e066fe4f73279128/1467801694/99388/1049411/01.jpg
Start (Space Key):
Warning: The pretest will erase bad block. Do you want Continuous?
a pokracuj podle rad ktere se vazou na ten post. Az bys objevil metodu ktera ti zkrouhne klicek na funkcni bloky, dej sem vedet :)
Název: Re:Romozte rozjet RO flashdisk
Přispěvatel: Razmir 17. 03. 2019, 22:56:54
Funkce pretest mi pořád vyhazovala mně nicneříkající chybu "Pretest failed", ale našel jsem tam možnost omezení kapacity. Pravděpodobně se i nepoužité bloky využívají jako rezervní a při neúspěšném zápisu se použijí, protože po zmenšení kapacity jsem dělal opětovný test zápisu a čtení s kontrolou a nyní je celá viditelná oblast OK.
Takže snad úspěch.
Název: Re:Romozte rozjet RO flashdisk
Přispěvatel: RDa 18. 03. 2019, 16:01:02
Vidis to me nenapadlo - zrejme je radic chytrej a dela po zapisu zpetnou kontrolu. Pokud je to vadny, tak se blok nahradi s tim rezervnim v neviditelne casti (do doby nez se to konecne nezapise spravne), takze to hledani vadnych bloku probiha az on-demand a krome nastaveni mensi dostupne kapacity nebude potreba nic dalsiho udelat.