Ich habe eine Datei, die etwas größer als 500 MB ist und einige Probleme verursacht.
Ich glaube, das Problem wird in der End-of-Line-Konvention (EOL) verwendet. Ich möchte die Datei in ihrer nicht interpretierten Rohform (1) betrachten, um die EOL-Konvention der Datei zu bestätigen.
Wie kann ich die "Binärdatei" einer Datei mit einer in Windows 7 integrierten Funktion anzeigen? Ich würde es vorziehen, keine zusätzlichen Dateien herunterladen zu müssen.
(1) Mein Kollege und ich haben die Datei in Texteditoren geöffnet und sie zeigen die Zeilen wie erwartet an. Beide Texteditoren öffnen jedoch Dateien mit unterschiedlichen EOL-Konventionen und interpretieren sie automatisch. (TextEdit und Emacs 24.2. Für Emacs hatte ich unter Verwendung head -c4096
einer Linux-Box eine zweite Datei mit nur den ersten 4 KB erstellt und diese in meiner Windows-Box geöffnet.
Ich habe versucht, den Hexl-Modus in Emacs zu verwenden, aber als ich in den Hexl-Modus und zurück in den Text-Modus gewechselt bin, hatte sich der Inhalt des Puffers geändert und am Ende jeder Zeile ein sichtbares ^ M hinzugefügt, was ich nicht bin Ich vertraue dem im Moment.
Ich glaube, das Problem liegt möglicherweise am Ende der verwendeten Zeilenzeichen. Die Redakteure, mein Kollege und ich, haben versucht (1), die End-of-Line-Konvention automatisch zu erkennen und uns die Zeilen zu zeigen. Und basierend auf anderen Beweisen glaube ich, dass die EOL-Konvention nur die Rückgabe von Waren beinhaltet. (2) nur zurück.
Um zu wissen, was sich tatsächlich in der Datei befindet, möchte ich den binären Inhalt der Datei oder mindestens ein paar tausend Bytes der Datei betrachten, vorzugsweise in hexadezimaler Schreibweise, obwohl ich mit dezimal oder oktal arbeiten könnte. Nur Einsen und Nullen wären ziemlich grob anzusehen.
AKTUALISIEREN
Mit Ausnahme des einen Vorschlags DEBUG
funktionieren alle unten stehenden Antworten in gewissem Maße. Ich habe jede davon als hilfreich eingestuft. Meine Frage war schlecht formuliert. Beim Testen der einzelnen Lösungsvorschläge stellte ich fest, dass ich wirklich wollte, dass Hexadezimal- und Textinhalte nebeneinander angezeigt werden und dass ich wollte, dass sich der Cursor über etwas befindet, entweder über einen Bytewert oder über das Textzeichen, das auf dem übereinstimmt Die andere Seite wird hervorgehoben.
Ich habe mein Problem tatsächlich gelöst, als der Emacs Hexl-Modus "richtig" lief. Also habe ich keine dieser Antworten benutzt, sondern sie nur getestet. (Sollte wirklich das seltsame Verhalten des Emacs untersuchen und einen Fehlerbericht einreichen.)
Antworten:
Sie benötigen einen "Hex-Editor". Ich benutze "Hex Editor Neo" seit Jahren und es ist sehr gut. Es ist in kostenlosen und kostenpflichtigen Versionen erhältlich . (Und ich bin mir sicher, dass es ähnliche Tools gibt.)
quelle
Wenn Sie über eine Powershell-Version 5.0 oder höher verfügen, können Sie die
powershell
integrierte Funktion verwendenFormat-Hex
quelle
Format-Hex
ist aber in meiner PowerShell nicht verfügbar. Ich bekomme nur einen "nicht erkannten" FehlerEingebaut, schnell und schmutzig: Starten
powershell
, Ausführen:TotalCount ist die Anzahl der Bytes, die Sie aus der Datei lesen möchten.
Google 'Powershell Hexdump', um besser funktionierende Versionen zu erhalten.
Wenn Sie über Windows Resource Kit-Tools verfügen (nicht genau integriert, aber geschlossen), können Sie auch ein Dienstprogramm namens cmd line verwenden
list.exe
. Es ist ein kleiner Editor mit Hex-Modus. Speziell für die Arbeit mit großen Dateien entwickelt:quelle
list.exe /?
gibt nicht viele Informationen, aber wenn Sie sich im Editor befinden, drücken Sie einfach?
, um die Befehle anzuzeigen .H
Öffnet den Hex-Editor undF1
schaltet die Darstellung des Hex umDies funktioniert auch auf allen anderen Rechnern nach XP:
certutil -encodehex MyProgram.exe MyProgram.txt
XP benötigt das Windows Server 2003 Administration Tools Pack von hier:
https://www.microsoft.com/en-us/download/details.aspx?id=16770
quelle
Kopieren Sie die Datei in einen Namen mit einer
.COM
Erweiterung, bei der der Basisname nicht länger als acht Zeichen ist. LaufEs wird eine
-
Eingabeaufforderung geben. Artwiederholt, um die Datei 128 Bytes auf einmal anzuzeigen. Art
um 128 Bytes ab der Adresse anzuzeigen , die hexadezimal eingegeben werden muss, wobei der Dateianfang die Adresse 100 ist. Geben Sie ein
Anzeige von Adresse 1 bis Adresse 2 . Art
um die Anzahl der Bytes (Länge) beginnend mit der Adresse anzuzeigen . num wird auch hexadezimal eingegeben. Verwenden Sie
Q
zu beenden.Beispielsweise,
quelle
C:\>attrib debug.exe /s
. Ergebnisse:File not found - debug.exe
. Konnte offizielles Debug nicht finden, wird nicht mehr unterstützt , aber von dem, was ich im Web gesehen habe, sieht es so aus, als ob der Debug-Support vor einer Weile eingestellt wurde. Ich habe DebugDiag von Microsoft gefunden. (Zusätzlicher Download.) Debuggen? Vielleicht unterstützt es das Betrachten von Dateien in HEX? Lieferung als .MSI-Datei. Benötigt ein Administratorkennwort zur Installation. Ich bin keiner.head -c4096 bigFileName > smallFileName
Linux benutzt, um die ersten 4 KB der Dateien zu bekommen. Die Zeilen sind klein genug, dass vier KB viele Zeilen für meine Zwecke habenhexdump -C
unter Linux?HxD ist ein portabler Hex-Editor, für den keine Installation erforderlich ist. Es handelt sich lediglich um eine einzelne Exe-Datei.
http://mh-nexus.de/de/hxd/
Eine andere ähnlich tragbare Option ist Frhed:
http://frhed.sourceforge.net/de/screenshots/
quelle
Da Windows 7 mit dem integrierten Dotnet Framework 3.5 geliefert wird, ist der C # -Compiler bereits integriert, sodass Sie beispielsweise die Auflistung von http://illegalargumentexception.blogspot.co.uk/2008/04/c- abrufen können. file-hex-dump-application.html und kompiliere dann mit
und Sie sollten mit einer printhex.exe enden, die sowohl Hex- als auch ASCII-Zeichen anzeigen sollte.
quelle
Es ist nicht ideal, aber wenn Sie wirklich nichts herunterladen möchten, können Sie versuchen, diese Datei mit fc / b (dh Dateivergleich im Binärmodus) mit einer anderen, völlig anderen Datei zu vergleichen, und es wird Ihnen das Hex angezeigt Werte für jedes Byte, das unterschiedlich ist. Möglicherweise erhalten Sie Werte, die in den beiden Dateien identisch sind, und werden daher möglicherweise von der Ausgabe übersprungen. Sie können jedoch feststellen, ob dies der Fall ist, indem Sie in der Offset-Spalte nach fehlenden Werten suchen.
quelle
Sie können die PowerShell-Funktion unten zusammen mit Get-Content verwenden, um einen Hexdump des Dateiinhalts anzuzeigen, z
Get-Content -Encoding Byte 'MyFile.bin' | Format-HexDump
. Es dauert ungefähr 23 Sekunden, um eine 222-KB-Datei zu sichern. Falls gewünscht, kann die Ausgabe in eine Textdatei umgeleitet werden, um die Überprüfung der Sicherung zu vereinfachen.Die Ausgabe sieht folgendermaßen aus:
quelle
Da Sublime-Text mein Lieblingseditor ist, verwende ich sein Plugin zum Anzeigen von Hex-Dateien. http://facelessuser.github.io/HexViewer/
quelle
Ich weiß, dass Sie Emacs verwenden, aber Vim- Benutzer können das
xxd
Dienstprogramm verwenden:dh
quelle