2017年11月
      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) »