Преобразовать шестнадцатеричный дамп файла в двоичный (программный) файл в Windows?

Преобразовать шестнадцатеричный дамп файла в двоичный (программный) файл в Windows?

У меня есть hex-файл, который я пытаюсь преобразовать в двоичный. Я выполнил это на Linux, прежде чем использовать команду:

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

Но я не могу понять, как сделать эту же команду на Windows. Я скачал несколько инструментов для шестнадцатеричного редактора, но не совсем уверен, как использовать их для преобразования шестнадцатеричного представления в двоичное.

Есть ли способ сделать это в Windows или есть ли какие-либо аналогичные инструменты, которые позволят мне это сделать?

решение1

Существует собственный порт xxd на Win32.

Видетьunxutils здесьдля скачивания.

Другим источником портов Win32 распространенных утилит GNU и/или *nix являетсяGnuWin32.

Добавлено Барлопом

Этот ответ неверный, см. комментарии, xxd отсутствует в unxutils и в gnuwin32.

решение2

VIM 7.x содержит xxd для 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 тоже есть один

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, 8 июня 2013 г. Юрген Вайгерт и др. (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.

Связанный контент