在 Windows 上将文件的十六进制转储转换为二进制(程序)文件?

在 Windows 上将文件的十六进制转储转换为二进制(程序)文件?

我有一个十六进制文件,正在尝试将其转换为二进制文件。我在 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 命令。

  1. 打开 Hex 文件
  2. 编辑>>转换文件
  3. 在对话框中,选择 Intel Hex to Binary
  4. 点击“确定”按钮。
  5. 四舍五入文件大小?请单击“否”。
  6. 将文件保存为 Bin。

相关内容