У меня есть 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.
- Открыть Hex-файл
- Редактировать>>Файл конвертера
- В диалоговом окне выберите Intel Hex to Binary.
- Нажмите кнопку ОК.
- Округлить размер файла? Нажмите Нет.
- СОХРАНИТЬ файл как Bin.