本帖最后由 chishingchan 于 2019-9-18 07:34 编辑
下面这段代码可以完成工作,但是效率很差!
我的构思:
先试查找 $Hex 的一个字节,找到一个字节就查找添加到两个字节,直到找到12个字节的位于文件中的地址。
请帮忙完善一下代码,谢谢!
Local $InstallDir, $File, $FileSize, $Read, $Position
Local $Hex = "0x534E415345524E554D008F0A"
$File = @ScriptDir & "\snapshot.exe"
If FileExists($File) Then
$FileSize = FileGetSize($File)
$ado_stream = ObjCreate("ADODB.Stream")
$ado_stream.Type = 1
$ado_stream.open
$ado_stream.LoadFromFile($File)
For $i = 0 To $FileSize - 1 Step 1
$ado_stream.position = $i
$Read = $ado_stream.Read((StringLen($Hex) - 2) / 2)
If $Read = $Hex Then
$Position = $i
ExitLoop
EndIf
Next
$ado_stream.Close
MsgBox(0,"找到的地址及数据", $Position & @CRLF & $Hex)
EndIf
snapshot.exe
|