首页 > 编程 > VBScript > 正文

使用VBS修改二进制文件HEX数据

2020-06-26 18:34:29
字体:
来源:转载
供稿:网友
利用VBS修改二进制文件HEX数据。第一个参数为原文件,第二个参数为修改后的文件,第三个参数为原HEX值,第四个参数为修改后的HEX值
 
可用之处还是有的,如:隐藏快捷方式中目标文件位置;破解XP中TCP/IP连接数限制;去掉RAR右键解压菜单等等。 

使用VBS修改二进制文件HEX数据

 

复制代码代码如下:

Public BinaryData

 

If (lcase(right(wscript.fullname,11))="wscript.exe") Then
 WScript.Quit(0)
End If

If wscript.arguments.count<4 Then
 Wscript.Echo "Change File Hex. By: lxzzr  lxzzr@21cn.com"
 Wscript.Echo ""
 Wscript.Echo "Usage: cscript.exe " & WScript.ScriptName & " FilePath SavePath sHEX dHEX"
 Wscript.Echo "     : cscript.exe CHex.vbs ""./test.exe"" ""./new.exe"" ""80 7A 01 61"" ""80 7A 01 61"""
 WScript.Quit(0)
End If

sHEX = Replace(LCase(Wscript.Arguments(2)), " ", "")
dHEX = Replace(LCase(Wscript.Arguments(3)), " ", "")

Wscript.Echo "File: " & Wscript.Arguments(0)
Wscript.Echo "sHEX: " & Wscript.Arguments(2)
Wscript.Echo "dHEX: " & Wscript.Arguments(3)

ReadBinary(Wscript.Arguments(0))

MyData = Replace(BinaryData, sHEX, dHEX)

WriteBinary Wscript.Arguments(1), MyData

Wscript.Echo "All done."
Wscript.Quit(0)

 


Function ReadBinary(FileName)
 Dim Stream, ObjXML, MyNode

 Set ObjXML = CreateObject("Microsoft.XMLDOM")
 Set MyNode = ObjXML.CreateElement("binary")
 Set Stream = CreateObject("ADODB.Stream")

 MyNode.DataType = "bin.hex"

 Stream.Type = 1
 Stream.Open
 Stream.LoadFromFile FileName

 MyNode.NodeTypedValue = Stream.Read

 Stream.Close

 BinaryData = MyNode.Text

 Set MyNode = Nothing
 Set Stream = Nothing
 Set ObjXML = Nothing
End Function


Function WriteBinary(FileName, BufferData)
 Dim Stream, ObjXML, MyNode

 Set ObjXML = CreateObject("Microsoft.XMLDOM")
 Set MyNode = ObjXML.CreateElement("binary")
 Set Stream = CreateObject("ADODB.Stream")

 MyNode.DataType = "bin.hex"
 MyNode.Text = BufferData

 Stream.Type = 1
 Stream.Open
 Stream.Write MyNode.NodeTypedValue
 Stream.SaveToFile FileName, 2
 Stream.Close

 Set stream = Nothing
 Set MyNode = Nothing
 Set ObjXML = Nothing
End Function

 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表