我有一个十六进制文件,正在尝试将其转换为二进制文件。我在 Linux 上执行此操作之前使用以下命令:
xxd -r -p mykey.hex > mykey.bin
但我不知道如何在 Windows 上执行相同的命令。我下载了一些十六进制编辑器工具,但不太清楚如何使用它们将十六进制转换为二进制表示。
有没有办法在 Windows 中执行此操作,或者是否有任何类似的工具可以让我执行此操作?
答案1
有一个 xxd 到 Win32 的本机端口。
看unxutils 在这里用于下载。
常见 GNU 和/或 *nix 实用程序的 Win32 端口的另一个来源是操作系统。
由 Barlop 添加
这个答案是不正确的,请参阅评论,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 命令。
- 打开 Hex 文件
- 编辑>>转换文件
- 在对话框中,选择 Intel Hex to Binary
- 点击“确定”按钮。
- 四舍五入文件大小?请单击“否”。
- 将文件保存为 Bin。