Überprüfen Sie die tatsächliche Größe des USB-Sticks

28

Ich habe kürzlich viel über gefälschte MicroSD-Karten und USB-Sticks gelesen, die viel Speicherplatz beanspruchen (auch wenn Sie Ihren Computer fragen) und physisch viel weniger bieten. Ich habe kürzlich ein SanDisk-USB-Laufwerk gekauft (128 GB beansprucht) und möchte dessen Größe testen. Es wird nicht über eBay oder so gekauft, aber ich möchte unbedingt die tatsächliche Größe testen, bevor ich es produktiv nutze.

Ich könnte einfach Sachen darauf kopieren, es zurückkopieren und nachsehen, ob die Dateien in Ordnung sind. Ich könnte es auch mit Hashes und so automatisieren. Aber ich habe gehofft, dass es eine genauere Lösung gibt. Ich habe gelesen, dass H2testw für Windows den Trick macht. Gibt es eine einfache Möglichkeit, dies unter Ubuntu / Linux zu testen? Vielleicht ein spezialisiertes, gut funktionierendes Werkzeug?

Update: Um es klar zu machen, soll überprüft werden, ob die Größe, die der Controller dem Linux-System mitteilt, korrekt ist ( damit keine Daten verloren gehen ). Es ist nicht so, dass ich sehen möchte, ob ich 128 GB statt 127,3 GB bekomme. Ich möchte testen, ob alle Daten, die ich schreibe, wieder lesbar sind. Leider kann ich auf englischen Tech-Sites nur wenige Informationen dazu finden. Es gibt jedoch gute deutsche Quellen. Ich suche tatsächlich nach einer solchen Anwendung, aber für Ubuntu / Linux: https://www.raymond.cc/blog/test-and-detect-fake-or-counterfeit-usb-flash-drives-bought-from -ebay-with-h2testw /

Update2: Ich habe versucht, einige Quellen auf Englisch zusammenzubringen. Ich habe aus Zeitgründen nicht alle ausführlich gelesen.

Update3: Erläuterungen

Aufgrund der unten stehenden seltsamen Kritik einige Erklärungen.

Was ist das Problem und warum löst dd alleine es nicht?

Dies ist eine Reaktion auf

"Finde klar heraus, welches Problem du lösen willst und was die Definition von" Fake Drive "ist."

Es scheint, dass einige Leute das Problem nicht verstehen. Deshalb versuche ich es so kurz wie möglich zu erklären, obwohl ich denke, dass dies sehr weit von meiner Frage entfernt ist.

Die Kapazität der USB-Geräte, die Sie von Ihrem Betriebssystem oder von Unix-Tools erhalten, kann falsch sein. Dies ist fatal, da Ihr Betriebssystem regelt, an wie viele Daten Sie diese senden können. Wenn Sie mehr Daten senden, als es wirklich aufnehmen kann, gehen Daten verloren. Das ist ein Problem. Warum kann das passieren?

Sie müssen das USB-Protokoll nicht genau kennen, um das Problem zu verstehen. Serielle Schnittstellen haben die gemeinsame Eigenschaft, dass das Client-Gerät (das USB-Laufwerk) über diese serielle Schnittstelle seine eigene Kapazität mitteilen muss. Dies bedeutet, dass das Client-Gerät einen eigenen Controller benötigt, der sich mit dem Zweck des Geräts und seiner Kapazität auskennt. Es entscheidet auch, was getan wird, wenn es den Befehl zum Speichern erhält. Wenn die Steuerung auf diese Weise programmiert ist, kann sie den Befehl einfach ignorieren oder etwas mit den Daten überschreiben.

Was bedeutet das? Was auch immer Ihre Unix-Tools über die Kapazität des Laufwerks aussagen: Es ist das, was die Tools vom Laufwerk verlangt haben, nichts weiter. Dafür wurde h2testw erfunden: Es testet die tatsächliche Größe mit einer später erläuterten Methode und vergleicht sie mit den Angaben des Laufwerks. Wenn dies nicht der Fall ist, kann es zu Datenverlusten kommen, da alle gängigen Vorgänge zum Speichern von Daten von den Informationen Ihres Betriebssystems abhängen, die nur den Controller fragen. Warum fragst du nur? Das Testen benötigt Zeit und überschreibt alle Daten auf dem Laufwerk. Daher ist es selbstverständlich, dass sich ein Betriebssystem auf diese Informationen verlassen muss.

Um die tatsächliche Kapazität wie h2testw zu überprüfen, können Sie tatsächlich ddDaten auf das Laufwerk schreiben, es erneut lesen und prüfen, ob es dasselbe ist, das Sie geschrieben haben. Ganz echt. Die Art der Hardware und das Laufwerk machen es komplizierter. Betrachten Sie beispielsweise Schreibcaches. Sie müssen sicherstellen, dass Sie nicht aus dem Cache lesen. Dies ist nur ein Beispiel dafür, warum es nicht so einfach ist, wie es aussieht. Denken Sie auch, dass nur das Schreiben von Nullen eine geringe Informationsentropie bedeutet, die beim Lesen rekonstruiert werden kann. Im Detail ist es einfach nicht so einfach. Sie können es natürlich immer noch manuell machen.

Aber warum, wenn man es automatisieren kann? Warum zur Arbeit? f3 implementiert, wie in meiner Antwort unten vorgeschlagen, Unmengen von Gedanken vieler Mitwirkender (bedenken Sie, dass es eine Art erweiterter h2testw ist) und implementiert auch mehrere Methoden mit unterschiedlichen Kompromissen. Der Entwickler fand die Tricks der verschiedenen gefälschten Laufwerke heraus, die er zur Hand hatte . Während ich also die Theorie und das Problem verstehe (anscheinend sind die Probleme in deutschen technischen Medien gut erklärt, aber nicht in englischsprachigen Medien), gebe ich nicht vor, alles zu verstehen, weshalb ich es oben erwähnt habe. Es ist nur die Theorie, die ich verstehe, und ich bin eher ein Software-Typ. Aber als Informatikstudent verstehe ich es gut genug, um das Problem zu erkennen.

"Versuchen Sie, grundlegende Unix-Dienstprogramme zu verstehen"

Eigentlich habe ich diesen bereits beantwortet, aber um es klar zu machen: Unix-Tools verwenden nur das USB-Protokoll (natürlich nur für USB-Geräte), um Informationen zu sammeln. Es macht keinen Sinn, mehr als das zu tun.

Hilft es, nur von vertrauenswürdigen Lieferanten einzukaufen?

tl; dr: Das tut es nicht.

"Wenn es um den Kauf von Waren geht, sollten Sie, genau wie bei jeder Art von Sicherheit, einen vertrauenswürdigen Verkäufer finden und Laufwerke nur von diesen kaufen."

Bei Sicherheit geht es NICHT um Vertrauen! Es geht um Verifikation und Validierung! Sorry, aber das ist in vielerlei Hinsicht so falsch.

Angenommen, Sie kaufen über einen vertrauenswürdigen Verkäufer. Ein paar Fragen:

  1. Hat der Lieferant die Hardware getestet, um sicherzustellen, dass keine Daten verloren gehen? Erkennt er, wenn er gefälschte Laufwerke kauft und verkauft? Nicht unbedingt.

  2. Ist es möglich, dass er Sachen kauft, von denen er nicht weiß, dass sie gefälscht sind? Schauen Sie sich die neuesten Ryzen-Fälschungen an: https://www.pcgamer.com/beware-of-fake-ryzen-processors-selling-on-amazon/ , https://www.heise.de/newsticker/meldung/ Direkt-von-Amazon-Fälschungen-von-AMDs-Ryzen-Prozessoren-im-Umlauf-3772757.html

  3. Wenn ich meine Präsentation im Laufwerk verliere und die Präsentation vermassle, wird mein vertrauenswürdiger Lieferant in die Vergangenheit zurückkehren und mich retten? Es wird wahrscheinlich die Festplatte ersetzen, da die letzte Zeitreise DeLorean im Jahre 1885 zerstört wurde.

Andere Sachen

"Diese Frage scheint eher" Promo "für das zu sein, was OP mag, und es scheint, dass OP viel weniger daran interessiert ist, die Laufwerke tatsächlich zu testen."

Das ist lächerlich. Ich habe speziell nach einem ähnlichen Tool wie h2testw gesucht, das auch unter Linux läuft. Und ja, das ist, was ich "möchte", hilfreiche Antwort, so leid. Ich hatte keine Ahnung, dass die englischsprachige Presse sich solcher Probleme nicht so bewusst ist und hatte das Glück, später so etwas zu finden. Dies ist keine Promo, aber es scheint, als könntest du eine verwenden.

verpfeilt
quelle
2
Es macht nicht viel Sinn, es zu testen, was der Computer als verfügbar bezeichnet, oder df --block-size=M. Die Beschränkung auf 4 GB würde darauf hindeuten, dass dies nur eine Beschränkung der Dateigröße für FAT32 ist, nicht die Festplattenkapazität. Es wird nie die volle Kapazität angegeben, es ist nur ein Durchschnitt, um es zu klassifizieren.
Sir_Scofferoff
6
Der Computer sagt, dass nur das verfügbar ist, was ihm vom Controller des USB-Laufwerks mitgeteilt wird. Gefälschte Laufwerke lügen. Wenn es 4 GB Kapazität hat, aber behauptet, 512 GB zu haben, wird der Rest, den ich schreibe, weggeworfen oder der alte Speicherplatz wird überschrieben, abhängig vom Controller. Es ist also in der Tat sinnvoll, es zu testen.
21.
das ist interessant. Mir ist noch nie der Gedanke gekommen, die Größe einer SSD zu fälschen, aber ich mag die Idee, wie sie die Daten schreibt und byteweise zurückliest, um die Konsistenz zu überprüfen. Ich kann sehen, wie dies ein Problem sein könnte und ein Tool wie dieses könnte nützlich sein.
1
FakeFlashCheck hat auch einen schnellen Scan. Gibt es dafür OSALT?
neverMind9
PS: Ich habe bereits f3probe gefunden. Siehe meinen Kommentar unten.
neverMind9

Antworten:

33

f3 - Blitzbetrug bekämpfen

Es gibt nur eine Alternative, die ich gefunden habe, aber ich denke, dies ist sogar eine bessere als das ursprüngliche h2testwTool für MS Windows. Glücklicherweise ist es sehr einfach zu bedienen, auch über die Befehlszeile. Es gibt jedoch GUIs. Auf der Tools-Website finden Sie außerdem zahlreiche Informationen zur Implementierung und zum Problem mit gefälschten Laufwerken.

f3 bietet zwei Methoden an:

  • Methode f3probe: Viel schneller
  • Methode h2testw: Langsamer. Testen Sie auch die R / W-Leistung. Wahrscheinlich zuverlässiger.

Die f3probe Methode (empfohlen)

f3probeDies ist eine Möglichkeit, die Laufwerke zu testen, die zwar nicht so genau, aber schneller sind, da nicht auf das gesamte Laufwerk geschrieben wird. Weitere Informationen finden Sie auf der Tools-Website. Wenn Sie 100% sicher sein möchten, verwenden Sie besser die Methode h2testw. Wie der Entwickler auf der Website beschreibt:

f3probe ist der schnellste Weg, um gefälschte Laufwerke und ihre tatsächlichen Größen zu identifizieren.

Und:

Da es sich bei f3probe um freie Software handelt und f3probe sich als kampferprobt erwiesen hat, kann f3probe in Smartphones, Kameras, MP3-Player und andere Geräte integriert werden, um die Verbreitung von gefälschtem Blitz ein für alle Mal zu stoppen.

Es gibt auch ein Verwendungsbeispiel auf der Website:

Warnung : Dadurch werden alle zuvor auf Ihrer Festplatte gespeicherten Daten zerstört!

$ sudo f3probe --destructive --time-ops /dev/sdb
[sudo] password for michel: 
F3 probe 6.0
Copyright (C) 2010 Digirati Internet LTDA.
This is free software; see the source for copying conditions.

WARNING: Probing may **demolish data,** so it is more suitable for flash drives out of the box, without files being stored yet. The process normally takes from a few seconds to 15 minutes, but
         it can take longer. Please be patient. 

Bad news: The device `/dev/sdb' is a counterfeit of type limbo

You can "fix" this device using the following command:
f3fix --last-sec=16477878 /dev/sdb

Device geometry:
             *Usable* size: 7.86 GB (16477879 blocks)
            Announced size: 15.33 GB (32155648 blocks)
                    Module: 16.00 GB (2^34 Bytes)
    Approximate cache size: 0.00 Byte (0 blocks), need-reset=yes
       Physical block size: 512.00 Byte (2^9 Bytes)

Probe time: 1'13"
 Operation: total time / count = avg time
      Read: 472.1ms / 4198 = 112us
     Write: 55.48s / 2158 = 25.7ms
     Reset: 17.88s / 14 = 1.27s

Beachten Sie, dass es auch einen Befehl zurückgibt, mit dem Sie das Laufwerk mit seiner tatsächlichen Größe verwenden können f3fix.

Das f3fix-Tool

f3fix erstellt eine Partition, die der tatsächlichen Größe des gefälschten Laufwerks entspricht. Verwenden Sie f3probedie Ausgabe von, um die Parameter für i3fix zu bestimmen

sudo f3fix --last-sec=16477878 /dev/sdb

Die Methode h2testw / Testen der Leistung mit f3read / f3write

F3 ist eine Sammlung von Tools, die sich mit gefälschten Flash-Laufwerken befassen. Zwei von ihnen implementieren zusammen die h2testw-Methode:

f3write [--start-at=NUM] [--end-at=NUM] <PATH>
f3read  [--start-at=NUM] [--end-at=NUM] <PATH>

f3writefragt nach der Größe der Geräte und füllt sie mit generierten Dateien mit einer Größe von jeweils 1 GB. f3readIch werde alle diese Dateien lesen und sehen, ob sie vollständig und nicht kaputt sind. Als Beispiel die Befehle, die ich zum Testen meines ~ 128-GB-USB-Sticks verwendet habe:

$ f3write /media/username/1EB8021AB801F0D7/
Free space: 117.94 GB
Creating file 1.h2w ... OK!                           
...
Creating file 118.h2w ... OK!                         
Free space: 0.00 Byte
Average writing speed: 11.67 MB/s

Testen Sie nun, ob die Dateien korrekt gespeichert sind:

$ f3read /media/username/1EB8021AB801F0D7/
                  SECTORS      ok/corrupted/changed/overwritten
Validating file 1.h2w ... 2097152/        0/      0/      0
...
Validating file 118.h2w ... 1979488/        0/      0/      0

  Data OK: 117.94 GB (247346272 sectors)
Data LOST: 0.00 Byte (0 sectors)
           Corrupted: 0.00 Byte (0 sectors)
    Slightly changed: 0.00 Byte (0 sectors)
         Overwritten: 0.00 Byte (0 sectors)
Average reading speed: 32.38 MB/s

Der Test für ein Laufwerk dieser Größe dauerte mit dieser Methode ungefähr drei Stunden und verursachte manchmal eine hohe Festplattenlast auf meinem Computer, aber es wird mir gesagt, dass dies am genauesten ist.

In Ubuntu installieren

Am Terminal:

sudo apt install f3

Dies bringt Sie: f3brew, f3fix, f3probe, f3read, f3writemit ihrem Mann Seiten.

Diese Tools sind Teil des f3Pakets, das mindestens unter Ubuntu 15.10 verfügbar ist. Laut der Website gibt es einige weitere Tools, die zur Verfügung stehen. Um sie zu bekommen, werfen Sie einen Blick auf die Website.
Das Paket enthält kurze, aber nützliche Hilfeseiten, obwohl sie meiner Meinung nach einige Informationen von der Website über den Unterschied zwischen f3read / write und f3probe vermissen, weshalb diese Antwort etwas länger wurde.

verpfeilt
quelle
2
Vielen Dank, dass Sie dieses großartige Tool eingeführt haben. Ich möchte nur hinzufügen, dass die Installation mit apt-getinstalliert wird f3readund fwrite nur als f3probeund f3fixals experimentell gilt. Wenn Sie sie verwenden möchten, müssen Sie sie make experimentalnach der Installation der Abhängigkeiten aus dem Quellcode erstellen sudo apt-get install libudev1 libudev-dev libparted0-dev. Siehe github.com/AltraMayor/f3#the-extra-applications-for-linux
Ahmed Essam
"[f3probe] ist nicht mehr experimentell, sondern nur unter Linux verfügbar." github.com/AltraMayor/f3/issues/78#issuecomment-378599141
5.
4

Ich habe ein einfaches Tool dafür geschrieben, es heißt CapacityTester (Screenshot) und es hat eine GUI sowie eine CLI.

Es gibt eine vorkompilierte Binärdatei für Debian 7 , die auf einem modernen Ubuntu-System sehr wahrscheinlich sofort funktioniert.

Ich habe es für meinen persönlichen Gebrauch geschrieben, weil ich für diesen Zweck kein grafisches Werkzeug gefunden habe. Sie müssen lediglich zuerst Ihr leeres USB-Flash-Laufwerk einbinden, es auswählen und den Test starten. Es ist ein sehr dummes Tool, da es nur das Laufwerk mit Dateien füllt und dann überprüft, ob die Daten auf dem Laufwerk korrekt sind. Der Test wird beim ersten Fehler (Schreiben oder Lesen / Überprüfen) abgebrochen. Es wird der Offset des Blocks gemeldet, der nicht erfolgreich geschrieben oder überprüft werden konnte. Dies ist jedoch ein logischer Offset, sodass diese Informationen möglicherweise unbrauchbar sind, da sie vom Dateisystem abhängen, in dem sich die Dateien auf dem Laufwerk befinden. Wenn das Laufwerk jedoch mit Daten gefüllt wurde und alles gelesen und überprüft werden konnte, sollte davon ausgegangen werden können, dass die gemeldete Kapazität des Laufwerks korrekt ist. Als Randnotiz,

Auch hier ist es sehr einfach, da es nur mit Dateien über einem vorhandenen Dateisystem funktioniert. Es gibt also einige KB (+ 1M Puffer), die nicht getestet werden können. Und es ist sehr langsam, weil es wirklich das gesamte Dateisystem ausfüllt. F3 ist sicherlich viel ausgefeilter und auch schneller, hat aber keine GUI. Der einzige Grund, warum CapacityTester vorhanden ist, besteht darin, dass es über eine grafische Benutzeroberfläche verfügt, die von Benutzern verwendet werden kann, die mit der Befehlszeile nicht vertraut sind oder einfach eine grafische Benutzeroberfläche bevorzugen.

Feedback ist erwünscht.

c0xc
quelle
Wie auf der Entwickler-Website angegeben, gibt es eine QT-GUI und eine GUI für OSX (ich habe sie nicht ausprobiert). Ich denke, es basiert auf QT4. Warum nicht auch F3 als Backend verwenden? Es würde Ihr Tool nicht komplizierter machen und es würde es wahrscheinlich funktionaler / effektiver machen, wenn Sie das Wissen nutzen, das Sie für F3 ausgegeben haben.
2.
-6

Das Verhalten von OP und das "falsche Laufwerk" ansprechen

Ich bearbeite die Antwort, um ein paar Punkte richtig anzusprechen, da OP sehr vehement war (und meiner Meinung nach die meisten Kommentare und Antworten ablehnt, außer ihren eigenen, die ich verdächtig finde). Insbesondere gibt es viele Behauptungen, dass es einen "Fake Drive" gibt, aber es gibt keine klare Definition, was auf der Erde das eigentlich bedeutet. OP erklärte:

Ich könnte einfach Sachen darauf kopieren, es zurückkopieren und nachsehen, ob die Dateien in Ordnung sind. Ich könnte es auch mit Hashes und so automatisieren. Aber ich habe gehofft, dass es eine genauere Lösung gibt.

OP selbst gab zu, dass sie "nur Sachen kopieren" und die Datenintegrität überprüfen konnten, war aber sehr gegen alle anderen Kommentare und Antworten, die etwas anderes vorschlagen, und OP drückte nur F3 als "echten Deal". Die Frage selbst begann zuerst über die Größe des Laufwerks, aber dann prüft OP aus irgendeinem Grund, ob die Dateien in Ordnung sind, als ob es mysteriöse Laufwerke gibt, die eine Größe beanspruchen und Sie diese Größe schreiben lassen, aber dann sind die Daten fehlerhaft. Daher finde ich es sehr verdächtig und würde OP-Werbung für F3 als Spam-Frage und Antwort betrachten.

Wenn ein Laufwerk tatsächlich ein gefälschtes Laufwerk ist

In der Frage ist die offensichtliche Definition von OP

"..Laufwerke, die viel Speicherplatz beanspruchen (oft zu weit entfernt, wie 128 GB) und physisch nur 0,5 bis 4 GB bieten."

Mit anderen Worten, laut OP gibt der Controller X Datenmengen an, aber USB kann nur etwa 80-90% weniger von dem enthalten , was behauptet wird.

Der Benutzer sudodus schlug in den Kommentaren vor (Hervorhebung hinzugefügt): "Ich habe festgestellt, dass einige USB-Sticks geringfügig kleiner als die Nenngröße sind. Ich nenne sie" zu klein " . Ich denke, die gefälschten Laufwerke sind " wesentlich zu klein " (normalerweise die Hälfte der Nenngröße) oder weniger ) ". Diese Definition ist großartig, aber wenn wir das annehmen, ist Fake Drive auf 50% festgelegt. Ein Laufwerk, das 64 GB beansprucht, aber nur 32 GB speichern kann, verliert technisch die Hälfte seines Werts für den Eigentümer und der Eigentümer kann nur die Hälfte dessen, was er beabsichtigt hat, auf das Laufwerk setzen.

Ich schlage eine einfachere Definition vor: Gefälschtes Speichermedium ist dasjenige, von dem behauptet wird, dass Claimed Sizees eine Toleranz von weniger als 15% hat (und die Toleranz ist Claimed Size ± 15 %).

Das ± 15 %ist sehr vernünftig. Bedenken Sie auch, dass Benutzer normalerweise zwischen Unix-, IEEE- und IEC-Organisationen verwechselt werden, die ein binäres Präfix anstelle eines Präfixes mit der Potenz 10 für die Datenspeichergröße verwenden. Der Unterschied beträgt 20% auf der Ebene der Yotta-Präfixe, USB-Laufwerke sind jedoch noch nicht vorhanden. Für die nächsten 20 Jahre sind also 15% angemessen. (Siehe askubuntu Frage "Bedeutung von 'i' in 'MiB'" und Binärpräfix )

Laufwerk testen

Tatsächlich benötigt der Benutzer keine speziellen Tools, abgesehen von dem, was bereits mit Ubuntu und den meisten POSIX-kompatiblen Unix-Systemen geliefert wird. Lassen Sie uns die Definition noch einmal betonen und umformulieren:

Wenn wir keine Datenmenge auf das Laufwerk schreiben können und das, was wir schreiben, innerhalb einer Toleranz von 15% liegt, ist das Laufwerk in Ordnung

Die einfache Möglichkeit besteht darin dd, das Gerät mit Nullen zu überschreiben (und denken Sie natürlich daran, Ihre Dateien zu speichern, bevor Sie dies tun).

sudo dd if=/dev/zero of=/dev/sdb1 iflag=nocache oflag=direct bs=1                        

Beachten Sie die bs=1Blockgröße von 1 Byte. Der ddBefehl gibt normalerweise einen Bericht darüber, wie viel geschrieben wurde.

$ dd if=/dev/zero of=/dev/null bs=1 count=1024
1024+0 records in
1024+0 records out
1024 bytes (1.0 kB, 1.0 KiB) copied, 0.00261981 s, 391 kB/s

Wir haben es gebeten, 1024 Bytes zu schreiben, es hat 1024 Bytes geschrieben.

Eine genauere Liste der Schritte, die sich an die Definition halten, wäre:

  • Finden Sie heraus, wie viele Daten das Laufwerk behauptet (vorausgesetzt, Sie vermuten df, dass Sie sich "irren"). Angenommen, in diesem Beispiel /dev/sdb1ist meine Gerätedatei für das USB-Laufwerk:

    $ df -P /dev/sdb1 | awk 'NR==2{print $2}'
    115247656
    

    Beachten Sie, dass das -PFlag für die POSIX-Portabilität vorgesehen ist. Dies bedeutet, dass die Blockgröße der Daten 1024 Byte beträgt und dass sich auf diesem Laufwerk 115247656 * 1024 Byte befinden.

  • Herauszufinden , was 15% Toleranz unter dem, was Ansprüchen Antrieb (115.247.656), vielleicht Verwendung Dienstprogramm , das Abstützungen Punktberechnungs floating wie awk:

     $ awk 'BEGIN{printf "%d\n",115247656*(1-0.15)}'
     97960507
    
  • Erstellen Sie zufällige Daten auf einer Festplatte mit der gleichen Größe wie im vorherigen Schritt, um sie als Benchmark zu verwenden: dd if=/dev/urandom of=./mytestfile.random bs=1024 count=97960507

  • Jetzt schreibe Daten dd if=./mytestfile.random of=/dev/sda1. Wenn das Laufwerk so viel halten kann, ist es "echt". Sie können auch md5sumoder sha1sumvon nehmen ./mytestfile.randomund mit /dev/sda1jetzt vergleichen . Eine noch bessere Verbesserung wäre das Schreiben mytestfile.randomdes Dateianhängepunkts, wodurch das Dateisystem auf dem Laufwerk bleibt und die Partitionierung des Laufwerks unverändert bleibt

    dd if=./mytestfile.random of=/mountpoint/for/usb/drive/testfile.random
    
  • Für Integrität kann dann tun Sie einfach jede Hashsummen zu überprüfen, wie md5sum, sha1sum, sha256sumoder andere. Beispielsweise

    md5sum ./mytestfile.random  /mountpoint/for/usb/drive/testfile.random
    

    Entscheidend dabei ist, dass das Laufwerk wahrscheinlich in Ordnung ist, wenn die Menge der geschriebenen Daten innerhalb der Toleranz liegt und vor und nach dem Schreiben eine korrekte Prüfsumme erzeugt.

All dies kann zur Vereinfachung in ein nettes Skript geschrieben werden, wenn man dies wünscht.

Fazit

Diese Frage scheint eher "Promo" für das zu sein, was OP mag, und es scheint, dass OP viel weniger daran interessiert ist, die Laufwerke tatsächlich zu testen. Darüber hinaus ist das Problem selbst menschlicher als "Laufwerk" -Problem. In den Kommentaren erklärte OP selbst, dass sie das USB-Verhalten nicht wirklich verstehen, aber vehement "den Controller" beschuldigen. Ich werde diese Frage mit 3 Punkten verlassen:

  • Finden Sie klar heraus, welches Problem Sie lösen möchten und wie die Definition von "Fake Drive" lautet.
  • Versuchen Sie, grundlegende Unix-Dienstprogramme zu verstehen
  • Wenn es um den Kauf von Waren geht, sollten Sie, genau wie bei jeder Art von Sicherheit, einen vertrauenswürdigen Verkäufer suchen und Laufwerke nur bei ihm kaufen.
Sergiy Kolodyazhnyy
quelle
1
Danke, aber ich bin nicht sicher, ob dd die tatsächliche Größe erkennen würde, da der Controller vortäuschen würde, dass er so viel Speicherplatz hat. Ich denke, Sie müssen in eine Datei (oder mehrere Dateien) schreiben und prüfen, ob Sie es vollständig zurückbekommen können. Vermutlich gibt es einen Grund, warum es spezielle Tools zum Testen gibt, leider nur für Windows. Ich denke, ich muss eine VM verwenden. Nun, es war vor einiger Zeit ziemlich groß in den Nachrichten in Deutschland. (Deutsche Quelle zum Thema: heise.de/ct/ausgabe/… )
verpfeilt
1
@verpfeilt Nun, ich spreche kein Deutsch, daher muss der Artikel entweder zusammengefasst oder von jemandem übersetzt werden. Wie würde der Controller vortäuschen, dass er die gleiche Menge an Speicherplatz hat? ddmeldet die Menge der Daten, die es auf das Gerät geschrieben / gegeben hat, ich sehe nicht, wie das gefälscht werden kann.
Sergiy Kolodyazhnyy
2
Nun, Sie können alles schreiben, aber das heißt nicht, dass der USB-Client es speichern wird. Wenn ich richtig verstanden habe, liegt das Problem direkt in der USB-Architektur. Sie können nicht einfach einen Flash-Speicher daran befestigen, sondern es wird ein Chip benötigt, der das Protokoll erfüllt. Wie bei einem Stub ( en.wikipedia.org/wiki/Method_stub ) können Sie hiermit einen Nur-Schreib-Speicher erstellen (das Laufwerk verfügt jedoch über eine geringe Menge an Speicher, um kleine Dateien zu speichern). Deshalb gibt es Tools wie h2testw. Hier ist etwas in Englisch: myce.com/news/…
verpfeilt
1
@SergiyKolodyazhnyy, ich habe festgestellt, dass einige USB-Sticks etwas kleiner als die Nenngröße sind. Ich nenne sie zu klein . Ich denke, die gefälschten Laufwerke sind "wesentlich zu klein" (normalerweise die Hälfte der Nenngröße oder weniger). Ich denke, mit etwas auf das Laufwerk zu schreiben ddund anschließend die md5sum zu überprüfen, sollte überprüfen, wie viel geschrieben und richtig gelesen werden konnte. (Ich denke, die Spezialwerkzeuge in der Antwort von @ verpfeilt sehen attraktiver aus, aber ich habe sie nicht getestet. Ich habe viele USB-Sticks und Speicherkarten, ich glaube, ich habe noch keine gefälschte gekauft.)
sudodus
1
@SergiyKolodyazhnyy, ich stimme Ihrer aktualisierten Definition zu: "Gefälschtes Speichermedium ist dasjenige, das behauptet, eine behauptete Größe zu haben, aber eine Toleranz von weniger als 15% (und eine Toleranz von behaupteter Größe ± 15%)". - Danke für ein tolles Update deiner Antwort :-)
sudodus