Windowsには、certutilコマンドもありますが、PowerShellで作ります。
ダンプする対象の簡単なバイナリ作成。
C:\Users\takk\tmp>echo 123>a.bin C:\Users\takk\tmp>
少しずつ作っていきます。Get-Contentでダンプ。
C:\Users\takk\tmp>powershell "gc -encoding byte a.bin" 49 50 51 13 10 C:\Users\takk\tmp>
10進数ではなく、16進数でダンプします。
C:\Users\takk\tmp>powershell "gc -encoding byte a.bin | % { '{0:x2}' -f $_ }" 31 32 33 0d 0a C:\Users\takk\tmp>
毎回Powershellコマンドを打つのも面倒なので、powershellしてから、変数$aに16進に変換した値を格納。
C:\Users\takk\tmp> powershell PS C:\Users\takk\tmp> $a=(gc -encoding byte a.bin | % {'{0:x2}' -f $_}) PS C:\Users\takk\tmp> $a 31 32 33 0d 0a PS C:\Users\takk\tmp>
16進数に変換した値は配列に格納されているので、一行に表示したい列数分、joinで結合して表示。まずは2列毎の表示で確認してみます。
PS C:\Users\takk\tmp> for($i=0;$i -le 5; $i+=2){ >> $b=$a[$i..($i+1)] >> $b -join " " >> } >> 31 32 33 0d 0a PS C:\Users\takk\tmp>
この方法で良さそうです。あとは2を16に変えて、ちょこちょこいじっていきます。
続く
コメント