バイナリに変換しようとしている 16 進ファイルがあります。以前、次のコマンドを使用して Linux でこれを実行しました。
xxd -r -p mykey.hex > mykey.bin
しかし、Windows で同じコマンドを実行する方法がわかりません。いくつかの 16 進エディター ツールをダウンロードしましたが、それらを使用して 16 進数を 2 進数表現に変換する方法がわかりません。
Windows でこれを行う方法はありますか? または、これを行うことができる同様のツールはありますか?
答え1
xxd には Win32 へのネイティブ ポートがあります。
見るunxutilsはこちらダウンロード用。
一般的なGNUおよび/または*nixユーティリティのWin32ポートの別のソースはGNUWin32 の。
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にも1つあります
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
16 進文字列をバイナリ ファイルに変換するには、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 コマンドを開始するのに最適です。
- 16進ファイルを開く
- 編集>>コンバータファイル
- ダイアログボックスで、Intel Hex to Binaryを選択します。
- [OK]ボタンを押します。
- ファイルサイズを切り上げますか? [いいえ] をクリックします。
- ファイルを Bin として保存します。