Wouldn't it would be easier to go (bear with me, I'm converting my JavaScript knowledge into VBScript here):
CODE
Dim fso, inputStream, sectionName, sectionLength, sectionData
Set fso = CreateObject("Scripting.FileSystemObject")
Set inputStream = FSO.OpenTextFile(App.Path & "\scenario.chk", 1)
While Not TextStream.AtEndOfStream
sectionName = inputStream.Read(4)
sectionLength = AscB(inputStream.Read(1)) + AscB(inputStream.Read(1)) * 256 + AscB(inputStream.Read(1)) * 256 ^ 2 + AscB(inputStream.Read(1)) * 256 ^ 3
sectionData = inputStream.Read(sectionLength)
'sectionData = inputStream.Skip(sectionLength)
Wend
AscB converts a character into a byte value without doing any UNICODE stuff. Anyway, that'd be a skeleton of what you might do. You could change the Read method with a Skip method like I've described there if you're looking at a section which you don't care about.
If you want to run a program and capture its output:
CODE
Dim shellObject, execObject, execOutputStream, execData
Set shellObject = WScript.CreateObject("WScript.Shell")
Set execObject = shellObject.Exec("chkhex scenario.chk")
Set execOutputStream = execObject.StdOut
execData = ""
While execObject.Status = 0
While Not execOutputStream.AtEndOfStream
execData = execData & execOutputStream.ReadAll
Wend
WScript.Sleep 100
Wend
It'd be something like that. I used that to capture errors from IceCC in one of my scripts, but I can't remember if that was my exact (VBScript translated) code or not.