Dies ist der Befehl magicrescue, der beim kostenlosen Hosting-Anbieter OnWorks mit einer unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, dem Windows-Online-Emulator oder dem MAC OS-Online-Emulator ausgeführt werden kann
PROGRAMM:
NAME/FUNKTION
magicrescue – Scannt ein Blockgerät und extrahiert bekannte Dateitypen, indem es sich Magic ansieht
Bytes.
ZUSAMMENFASSUNG
magische Rettung [ Optionen ] Low-Level-Lichtlaser
BESCHREIBUNG
Magic Rescue wird geöffnet Low-Level-Lichtlaser Zum Lesen werden sie nach Dateitypen durchsucht, die wiederhergestellt werden können
und ruft ein externes Programm auf, um sie zu extrahieren. Es betrachtet „magische Bytes“ in der Datei
Daher kann es sowohl als Wiederherstellungsdienstprogramm als auch zum Wiederherstellen beschädigter Dateien verwendet werden
Laufwerk oder Partition. Es funktioniert auf jedem Dateisystem, aber auf sehr fragmentierten Dateisystemen
kann nur den ersten Teil jeder Datei wiederherstellen. Diese Blöcke sind manchmal bis zu 50 MB groß.
aber.
Aufrufen magische Rettung, müssen Sie mindestens ein Gerät und das angeben -d und -r nach.
Informationen zu den ersten Schritten finden Sie im Abschnitt „VERWENDUNG“ in diesem Handbuch.
OPTIONAL
-b Block Größe
Standard: 1. Dies führt zur Weiterleitung magische Rettung um nur Dateien zu berücksichtigen, die mit a beginnen
ein Vielfaches von Block Größe Streit. Die Option gilt nur für die Rezepte
Im Anschluss daran kann es durch mehrfache Angabe verwendet werden, um etwas anderes zu erhalten
Verhalten für verschiedene Rezepte.
Mit dieser Option können Sie in der Regel eine bessere Leistung erzielen, allerdings mit weniger Dateien
gefunden. Insbesondere Dateien mit führendem Müll (z. B. viele MP3-Dateien) und Dateien
in anderen Dateien enthaltene Dateien werden wahrscheinlich übersprungen. Auch einige Dateisysteme
Richten Sie kleine Dateien nicht an Blockgrenzen aus, damit diese auf diese Weise nicht gefunden werden
entweder.
Wenn Sie die Blockgröße Ihres Dateisystems nicht kennen, verwenden Sie einfach den Wert 512
fast immer die Größe des Hardwaresektors.
-d Verzeichnis
Obligatorisch. Ausgabeverzeichnis für gefundene Dateien. Stellen Sie sicher, dass Sie genügend Freiraum haben
Speicherplatz in diesem Verzeichnis, insbesondere beim Extrahieren sehr häufiger Dateitypen wie z
JPEG- oder GZIP-Dateien. Stellen Sie außerdem sicher, dass das Dateisystem Tausende von Dateien verarbeiten kann
Dateien in einem einzigen Verzeichnis, dh verwenden Sie FAT nicht, wenn Sie viele Dateien extrahieren.
Sie sollten das Ausgabeverzeichnis nicht auf demselben Blockgerät platzieren, das Sie versuchen
um Dateien zu retten. Dadurch wird möglicherweise dieselbe Datei zuvor zum Blockgerät hinzugefügt
die aktuelle Leseposition, verursacht magische Rettung um dieselbe Datei wieder zu finden
später. Im schlimmsten theoretischen Fall könnte dies zu einer Schleife führen, in der dieselbe Datei gespeichert wird
wird tausende Male extrahiert, bis der Speicherplatz erschöpft ist. Sie sind wahrscheinlich auch
um die gelöschten Dateien zu überschreiben, nach denen Sie ursprünglich gesucht haben.
-r Rezept
Obligatorisch. Rezeptname, Datei oder Verzeichnis. Geben Sie dies entweder als einfachen Namen an
(z. B. „jpeg-jfif“) oder ein Pfad (z. B Rezepte/jpeg-jfif). Wenn es kein solches findet
Datei im aktuellen Verzeichnis, es wird darin gesucht ./Rezepte und
/usr/share/magicrescue/recipes.
If Rezept ist ein Verzeichnis, alle Dateien in diesem Verzeichnis werden als Rezepte behandelt.
Durchsuchen Sie die /usr/share/magicrescue/recipes Verzeichnis, um zu sehen, welche Rezepte es gibt
verfügbar. Ein Rezept ist eine Textdatei und Sie sollten die darin enthaltenen Kommentare lesen
bevor Sie es verwenden. Entweder das Rezept so verwenden, wie es ist, oder es irgendwo kopieren und modifizieren
es.
Informationen zum Erstellen eigener Rezepte finden Sie im Abschnitt „REZEPTE“.
-I Datei
Liest Eingabedateien aus Datei zusätzlich zu den in der Befehlszeile aufgeführten. Wenn
Datei ist „-“, gelesen aus der Standardeingabe. Jede Zeile wird als Datei interpretiert
Namen.
-M Ausgabemodus
Erzeugen Sie eine maschinenlesbare Ausgabe auf stdout. Ausgabemodus lassen sich:
i Drucken Sie jeden Eingabedateinamen vor der Verarbeitung aus
o Drucken Sie den Namen jeder Ausgabedatei nach der Verarbeitung aus
io Geben Sie sowohl die Namen der Eingabe- als auch der Ausgabedateien aus. Den Namen der Eingabedateien wird ein Präfix vorangestellt
„i“ und ein Leerzeichen. Den Namen der Ausgabedateien wird ein „o“ und ein Leerzeichen vorangestellt.
In diesem Modus wird nichts anderes in die Standardausgabe geschrieben.
-O [+|-|=][0x]Offset
Von der angegebenen Stelle fortfahren Offset im ersten Gerät. Wenn mit vorangestellt 0x es wird
als Hexzahl interpretiert werden.
Der Nummer kann ein Zeichen vorangestellt werden:
= Suche nach einer absoluten Position (Standard)
+ Suchen Sie nach einer relativen Position. Bei regulären Dateien geschieht das Gleiche wie oben.
- Suche nach EOF, abzüglich des Offsets.
ANWENDUNG
Angenommen, Sie haben das Dateisystem auf /dev/hdb1 zerstört und möchten das gesamte JPEG extrahieren
Dateien, die Sie verloren haben. In dieser Anleitung wird davon ausgegangen, dass Sie Magic Rescue installiert haben Verzeichnis / usr / local, Die
ist die Vorgabe.
Stellen Sie sicher, dass DMA und andere Optimierungen auf Ihrer Festplatte aktiviert sind, sonst dauert es Stunden. In
Linux, verwenden Sie hdparm, um diese Optionen festzulegen:
$ hdparm -d 1 -c 1 -u 1 /dev/hdb
Wählen Sie Ihr Ausgabeverzeichnis, irgendwo mit viel Speicherplatz.
$ mkdir ~/Ausgabe
Schau in den /usr/local/share/magicrescue/recipes Verzeichnis für die gewünschten Rezepte.
Magic Rescue enthält Rezepte für einige gängige Dateitypen, Sie können aber auch Ihre eigenen erstellen
(siehe nächster Abschnitt). Öffnen Sie die Rezepte, die Sie verwenden möchten, in einem Texteditor und lesen Sie sie
Kommentare. Die meisten Rezepte erfordern Software von Drittanbietern, um zu funktionieren, und Sie möchten sie möglicherweise ändern
einige Parameter (z.B min_output_file), passend zu Ihren Bedürfnissen.
Dann rufe auf magische Rettung
$ magicrescue -r jpeg-jfif -r jpeg-exif -d ~/Ausgabe / dev / hdb1
Es wird Ihre gesamte Festplatte durchsuchen, daher kann es eine Weile dauern. Sie können es stoppen und
später weitermachen, wenn Sie möchten. Unterbrechen Sie dazu den Vorgang (mit STRG+C) und notieren Sie den Fortschritt
Informationen darüber, an welche Adresse es gelangt ist. Dann starten Sie es später mit dem -O .
Wenn es fertig ist, werden Sie wahrscheinlich Tausende von JPG-Dateien darin finden ~/Ausgabeeinschließlich
Dinge, von denen Sie nie wussten, dass sie sich in Ihrem Browser-Cache befanden. Das Durchsuchen all dieser Dateien kann eine sein
Da es sich um eine große Aufgabe handelt, sollten Sie hierfür möglicherweise Software oder Skripte verwenden.
Versuchen Sie zunächst, Duplikate mit dem zu entfernen dupemap(1) Werkzeug in diesem Paket enthalten.
$ dupemap löschen, melden ~/Ausgabe
Wenn Sie einen Wiederherstellungsvorgang durchführen, möchten Sie alle geretteten Dateien entfernen
Dateien, die auch im Live-Dateisystem erscheinen. Siehe die dupemap(1) Handbuch für
Anweisungen dazu.
Wenn das nicht ausreicht, können Sie use verwenden Magicsort(1) um einen besseren Überblick zu bekommen:
$ magicsort ~/Ausgabe
REZEPTE
Erstellen Rezept Dateien
Eine Rezeptdatei ist eine relativ einfache Datei mit 3–5 Textzeilen. Es beschreibt, wie es geht
Erkennen Sie den Anfang der Datei und was zu tun ist, wenn eine Datei erkannt wird. Für
Beispielsweise beginnen alle JFIF-Bilder mit den Bytes „0xff 0xd8“. Beim 6. Byte wird das sein
Zeichenfolge „JFIF“. Ansehen Rezepte/jpeg-jfif in der Quelldistribution, um dies zu befolgen
Beispiel.
Der Abgleich magischer Daten erfolgt mit einer „Match-Operation“, die wie folgt aussieht:
Offset Betrieb Parameter
woher Offset ist eine dezimale Ganzzahl, die angibt, wie viele Bytes vom Anfang der Datei entfernt sind
diese Daten liegen, Betrieb bezieht sich auf eine integrierte Match-Operation in magische Rettung und
Parameter ist spezifisch für diesen Vorgang.
· Das Schnur Die Operation entspricht einer Zeichenfolge beliebiger Länge. Im JFIF-Beispiel sind es vier
Bytes. Sie können Escape-Zeichen wie „\n“ oder „\xA7“ verwenden.
· Das int32 Die Operation gleicht 4 Bytes mit einer UND-Verknüpfung mit einer Bitmaske ab. Um alle vier Bytes abzugleichen,
Verwenden Sie die Bitmaske „FFFFFFFF“. Wenn Sie keine Ahnung haben, was eine Bitmaske ist, verwenden Sie einfach die
Schnur Operation statt. Die Maske „FFFF0000“ im JFIF-Beispiel stimmt mit der ersten überein
zwei Bytes.
· Das verkohlen Die Operation ist wie eine „Zeichenfolge“, außer dass sie nur mit einem einzelnen Zeichen übereinstimmt.
Um diese Muster für einen bestimmten Dateityp zu lernen, schauen Sie sich Dateien des gewünschten Typs in einem Hex an
Editor, durchsuchen Sie die Ressourcendateien nach Datei(1) Dienstprogramm
(<http://freshmeat.net/projects/file>) und/oder suchen Sie im Internet nach einer Referenz dazu
Format.
Wenn alle Operationen übereinstimmen, haben wir den Anfang der Datei gefunden. Das Ende finden
Datei ist ein viel schwierigeres Problem und wird daher an einen externen Shell-Befehl delegiert.
das nach dem benannt ist Befehl Richtlinie. Dieser Befehl empfängt die Datei des Blockgeräts
Deskriptor auf stdin und muss in die ihm in der Variablen $1 angegebene Datei schreiben. Außer, abgesondert, ausgenommen
Das heißt, der Befehl kann alles tun, was er möchte, um die Datei zu extrahieren.
Für einige Dateitypen (z. B. JPEG) gibt es bereits ein Tool, das dies tun kann. Wie viele auch immer
Programme verhalten sich schlecht, wenn sie angewiesen werden, aus der Mitte eines riesigen Blockgeräts zu lesen. Manche versuchen es
Byte 0 vor dem Lesen (kann durch das Präfix cat| behoben werden, aber einige weigern sich, an einer Datei zu arbeiten
sie können nicht hineinsuchen). Andere versuchen, die gesamte Datei in den Speicher einzulesen, bevor sie etwas unternehmen.
was auf einem Multi-Gigabyte-Blockgerät natürlich fehlschlägt. Und manche schaffen es überhaupt nicht
Analysieren Sie eine teilweise beschädigte Datei.
Das bedeutet, dass Sie möglicherweise Ihr eigenes Tool schreiben oder ein vorhandenes Programm in eines einbinden müssen
Skripte, die dafür sorgen, dass es sich besser verhält. Dies könnte beispielsweise darin bestehen, die ersten 10 MB zu extrahieren
in eine temporäre Datei kopieren und das Programm damit arbeiten lassen. Oder vielleicht können Sie es verwenden
Tools/Safecat wenn die Datei möglicherweise sehr groß ist.
Rezept Format Referenz
Leere Zeilen und Zeilen, die mit „#“ beginnen, werden übersprungen. Ein Rezept enthält eine Reihe von
Match-Operationen, um den Inhalt zu finden, und eine Reihe von Anweisungen, um anzugeben, was damit geschehen soll
es.
Zeilen des Formats Offset Betrieb Parameter fügt der Liste eine Übereinstimmungsoperation hinzu.
Übereinstimmungsoperationen werden in der Reihenfolge ausprobiert, in der sie im Rezept erscheinen, und zwar alle
übereinstimmen, damit das Rezept gelingt. Der Offset beschreibt, in welchem Offset diese Daten gefunden werden
at, gezählt vom Anfang der Datei. Betrieb kann folgende Werte annehmen:
Schnur Schnur
Der Parameter ist eine Zeichenfolge, die Escape-Sequenzen enthalten kann, wie z
\xFF.
verkohlen Charakter
Der Parameter ist ein einzelnes Zeichen (Byte) oder eine Escape-Sequenz.
int32 Wert Bitmaske
Beide Wert und Bitmaske werden als 8-stellige Hexadezimalzeichenfolgen ausgedrückt. Bitmaske wird sein
Mit den Daten wird eine UND-Verknüpfung durchgeführt und das Ergebnis wird verglichen Wert. Die Bytereihenfolge ist
wie Sie es im Hex-Editor sehen, also Big-Endian.
Die erste Übereinstimmungsoperation in einem Rezept ist etwas Besonderes. Sie wird zum Durchsuchen des Rezepts verwendet
Datei. Nur der verkohlen und Schnur Dort können Operationen eingesetzt werden. Um weitere Funktionen hinzuzufügen
Typen finden Sie in den Anweisungen unter magicrescue.c.
Eine Zeile, die nicht mit einer Ganzzahl beginnt, ist eine Direktive. Das kann sein:
Erweiterung ext
Verpflichtend. ext benennt die Dateierweiterung für diesen Typ, z. B. „jpg“.
Befehl Befehl
Obligatorisch. Wenn alle Übereinstimmungsvorgänge erfolgreich sind, wird dies ausgeführt Befehl wird ausgeführt
Extrahieren Sie die Datei vom Blockgerät. Befehl wird mit an die Shell übergeben
Blockiert den Dateideskriptor des Geräts (im rechten Byte gesucht) auf stdin. die Muschel
Die Variable $1 enthält die Datei, in die ihre Ausgabe geschrieben werden soll, und das muss sie auch
Respektiere das. Ansonsten magische Rettung Ob es gelungen ist, kann ich nicht sagen.
umbenennen Befehl
Optional. Nach erfolgreicher Extraktion wird dieser Befehl ausgeführt. Sein Zweck ist
um genügend Informationen über die Datei zu sammeln, um sie in einen anderen Namen umzubenennen
sinnvoll. Das Skript darf den Umbenennungsbefehl nicht selbst ausführen, sollte es aber tun
Schreiben Sie in die Standardausgabe die Zeichenfolge „RENAME“, gefolgt von einem Leerzeichen und dem
neuer Dateiname. Es darf nichts anderes in die Standardausgabe geschrieben werden. Wenn die Datei
sollte nicht umbenannt werden, es sollte nichts in die Standardausgabe geschrieben werden. Standard
input und $1 funktionieren wie mit dem Befehl Richtlinie.
min_output_file Größe
Standard: 100. Ausgabedateien, die kleiner als diese Größe sind, werden gelöscht.
erlauben_überlappung Bytes
Standardmäßig stimmen Rezepte nicht mit überlappenden Bytebereichen überein. erlauben_überlappung
deaktiviert dies und sollte immer für Rezepte verwendet werden, bei denen die extrahierte Datei vorhanden ist
ist möglicherweise größer als auf der Festplatte. Wenn Bytes negativ ist, erfolgt die Überlappungsprüfung
völlig behindert. Andernfalls wird die Überlappungsprüfung für alles wirksam
aber das letzte Bytes der Ausgabe. Wenn die Ausgabe beispielsweise bis zu 512 betragen kann
Bytes größer als die Eingabe, erlauben_überlappung sollte auf 512 eingestellt werden.
Um zu testen, ob Ihr Rezept tatsächlich funktioniert, führen Sie es entweder einfach auf Ihrer Festplatte aus oder verwenden Sie
die Werkzeuge/Checkrezept Skript, um Dateien auszuwählen, die übereinstimmen sollten, aber nicht übereinstimmen.
Wenn Sie ein Rezept erstellt haben, das funktioniert, senden Sie es mir bitte per E-Mail an [E-Mail geschützt] also kann ich
Nehmen Sie es in die Verteilung auf.
WENN TO NICHT VERWENDUNG MAGIC RETTUNG
Magic Rescue ist nicht als universelle Anwendung zur Dateiwiederherstellung gedacht. Es wird geben
gute Ergebnisse, wenn Sie bekannte Dateitypen aus einem unbrauchbaren Dateisystem extrahieren, aber
Für viele andere Fälle stehen bessere Tools zur Verfügung.
· Wenn irgendwo intakte Partitionen vorhanden sind, verwenden Sie gpart um sie zu finden.
· Wenn die internen Datenstrukturen des Dateisystems mehr oder weniger unbeschädigt sind, verwenden Sie Die Sleuth
Ausrüstung. Zum Zeitpunkt des Schreibens werden jedoch nur NTFS, FAT, ext[23] und FFS unterstützt.
· Wenn Magic Rescue kein Rezept für den Dateityp hat, den Sie wiederherstellen möchten,
versuchen an erster Stelle stattdessen. Es erkennt mehr Dateitypen, extrahiert aber in den meisten Fällen
indem einfach eine feste Anzahl von Bytes herauskopiert wird, nachdem der Anfang gefunden wurde
Datei. Dies erschwert die Nachbearbeitung der Ausgabedateien.
In vielen Fällen möchten Sie Magic Rescue zusätzlich zu den oben genannten Tools verwenden.
Sie schließen sich nicht gegenseitig aus, z. B. durch Kombination magische Rettung mit dls von The Sleuth Kit
könnte gute Ergebnisse liefern. In vielen Fällen möchten Sie verwenden magische Rettung um es zu extrahieren
bekannte Dateitypen und ein anderes Dienstprogramm zum Extrahieren des Rests.
Wenn Sie die Ergebnisse von mehr als einem Tool kombinieren, dupemap(1) kann zur Beseitigung verwendet werden
Duplikate.
Nutzen Sie Magicrescue online über die Dienste von onworks.net