我有一個十六進位文件,我正在嘗試將其轉換為二進位。在使用命令之前我已經在 Linux 上執行過此操作:
xxd -r -p mykey.hex > mykey.bin
但我不知道如何在 Windows 上執行相同的命令。我已經下載了一些十六進位編輯器工具,但不太確定如何使用它們將十六進位轉換為二進位表示法。
有沒有辦法在 Windows 中執行此操作,或者是否有任何類似的工具可以讓我執行此操作?
答案1
Win32 有一個 xxd 的本機連接埠。
看這裡是 unxutils用於下載。
常見 GNU 和/或 *nix 實用程式的 Win32 連接埠的另一個來源是GnuWin32。
新增者 巴洛普
這個答案是不正確的,請參閱評論,xxd 不在 unxutils 中,也不在 gnuwin32 中。
答案2
VIM 7.x 包含適用於 Windows 的 xxd
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也有一個
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
添加
xxd 有空https://sourceforge.net/projects/xxd-for-windows/
xxd v1.11,2013 年 6 月 8 日,作者:Juergen Weigert 等人。 (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>
答案3
要將十六進位字串轉換為二進位文件,這適用於 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
最後一行在 PowerShell 5.1 中不起作用,但您可以這樣做:
Set-Content -Path 'out.bin' -Value $byte_array -Encoding Byte
PowerShell 隨 Windows 預先安裝。
答案4
WinHex 是您啟動愚蠢的 DOS 命令的最佳選擇。
- 打開十六進位文件
- 編輯>>轉換器文件
- 在對話方塊中,選擇 Intel Hex to Binary
- 點選確定按鈕。
- 舍入文件大小?按一下“否”。
- 將文件另存為 Bin。