Hex-Dump einer Datei unter Windows in eine Binärdatei (Programmdatei) konvertieren?

Hex-Dump einer Datei unter Windows in eine Binärdatei (Programmdatei) konvertieren?

Ich habe eine Hex-Datei, die ich in eine Binärdatei umwandeln möchte. Ich habe dies unter Linux bereits mit folgendem Befehl durchgeführt:

xxd -r -p mykey.hex > mykey.bin

Ich kann jedoch nicht herausfinden, wie ich denselben Befehl unter Windows ausführen kann. Ich habe einige Hex-Editor-Tools heruntergeladen, bin mir aber nicht sicher, wie ich damit Hex in eine Binärdarstellung umwandeln kann.

Gibt es eine Möglichkeit, dies unter Windows zu tun, oder gibt es ähnliche Tools, mit denen ich dies tun kann?

Antwort1

Es gibt einen nativen Port von xxd zu Win32.

Sehenunxutils hierfür Downloads.

Eine weitere Quelle für Win32-Ports gängiger GNU- und/oder *nix-Dienstprogramme istGnuWin32.

Hinzugefügt von Barlop

Diese Antwort ist falsch, siehe Kommentare, xxd ist nicht in unxutils und auch nicht in gnuwin32.

Antwort2

VIM 7.x enthält xxd für Windows

https://ftp.nluug.nl/pub/vim/pc/gvim73_46_s.zip

C:\Program Files (x86)\Vim\vim74>.\xxd -v
xxd V1.10 27oct98 by Juergen Weigert (Win32)

C:\Program Files (x86)\Vim\vim74>dir xxd.exe
10/08/2013  12:33 PM            70,144 xxd.exe

C:\Program Files (x86)\Vim\vim74>file xxd.exe
xxd.exe; PE32 executable for MS Windows (console) Intel 80386 32-bit

Cygwin hat auch einen

C:\cygwin\bin>.\xxd.exe -v
xxd V1.10 27oct98 by Juergen Weigert

C:\cygwin\bin>dir xxd.exe
18/09/2015  05:44 AM            18,963 xxd.exe

C:\cygwin\bin>file xxd.exe
xxd.exe: PE32+ executable (console) x86-64, for MS Windows

hinzugefügt

xxd ist verfügbarhttps://sourceforge.net/projects/xxd-for-windows/

xxd v1.11, 8. Juni 2013 von Jürgen Weigert et al. (Win32)

C:\Users\User>C:\xxd1p11\xxd-1.11_win32\xxd.exe -v
xxd v1.11, 8 jun 2013 by Juergen Weigert et al. (Win32)

C:\Users\User>

Antwort3

Um einen Hex-String in eine Binärdatei umzuwandeln, funktioniert dies in PowerShell Core 7.2.1:

$hex_string = '48656C6C6F2C20576F726C6421'
$hex_string_spaced = $hex_string -replace '..', '0x$& '
$byte_array = [byte[]] -split $hex_string_spaced
Set-Content -Path 'out.bin' -Value $byte_array -AsByteStream

Die letzte Zeile funktioniert in PowerShell 5.1 nicht. Sie können stattdessen jedoch Folgendes tun:

Set-Content -Path 'out.bin' -Value $byte_array -Encoding Byte

PowerShell ist in Windows vorinstalliert.

Antwort4

Um dumme DOS-Befehle auszuführen, ist WinHex für Sie am besten geeignet.

  1. Hex-Datei öffnen
  2. Bearbeiten>>Konverterdatei
  3. Wählen Sie im Dialogfeld „Intel Hex to Binary“
  4. Klicken Sie auf die Schaltfläche „OK“.
  5. Dateigröße aufrunden? Klicken Sie auf „Nein“.
  6. Datei als Bin SPEICHERN.

verwandte Informationen