2017年9月
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
無料ブログはココログ

« ショートカットにドロップすると、引数と作業フォルダの環境変数が置換されない。(障害?) | トップページ | バイナリファイルを16進数でダンプする。(その2) »

2008年9月24日 (水)

バイナリファイルを16進数でダンプする。

昔、DUMPコマンドがあったような。。。

cscript HexDump.VBS ファイル

Option Explicit
Dim Stream
Dim Pos
Dim Bytes
Dim Chars
Dim c
Dim k
Set Stream=CreateObject("ADODB.Stream")
Stream.Open
Stream.Type=1
Stream.LoadFromFile WScript.Arguments.Item(0)
For Pos=0 To Stream.Size-1 Step 16
  WScript.StdOut.Write Hex(Pos)
  Bytes=Stream.Read(16)
  Chars=""
  For k=1 To 16
    If k Mod 4 = 1 Then WScript.StdOut.Write " "
    If k>LenB(Bytes) Then
      WScript.StdOut.Write "  "
    Else
      WScript.StdOut.Write Mid(Hex(256+AscB(MidB(Bytes,k,1))),2)
      c=AscB(MidB(Bytes,k,1))
      If c < 32 Then c=32
      Chars=Chars & Chr(c)
    End If
  Next
  WScript.StdOut.WriteLine " " & Chars
Next

本来なら、JScriptにして、バッチファイルにラップするところですが、JScriptからはByte配列が扱えないようで、断念しました。

« ショートカットにドロップすると、引数と作業フォルダの環境変数が置換されない。(障害?) | トップページ | バイナリファイルを16進数でダンプする。(その2) »