打印

Windows下,怎么用原生支持的脚本修改一个二进制文件

[复制链接]
1163|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Simon21ic|  楼主 | 2016-3-21 22:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 Simon21ic 于 2016-3-21 22:24 编辑

VSFOS也基本准备了差不多了,每个模块编译后的文件需要做一个修改,把文件大小写到固定的位置
IAR并不具备这个功能,当然,也不考虑其他的脚本,如果可以用python,那就分分钟搞定了,只能用windows原生就支持的脚本,比如VBS

简单写了一下,貌似并不困难
不过貌似VBS里,字节数组不能简单按照数组的方式赋值,会报类型匹配错误,这个要怎么解?


If Wscript.Arguments.Count <> 1 Then
        Wscript.Quit
End If

Dim FSO, Stream, FileName, FileSize, Buffer
FileName = Wscript.Arguments(0)
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Stream = CreateObject("Adodb.Stream")

With Stream
        .Type = 1: .Mode = 3: .Open: .LoadFromFile FileName: Buffer = .Read
End With

FileSize = Stream.Size
Buffer(8) = CByte(FileSize And &HFF)

Stream.Write Buffer
Stream.SaveToFile FileName, 2
Stream.Close
Set Stream = Nothing
Set FSO = Nothing
Wscript.Quit



相关帖子

沙发
Simon21ic|  楼主 | 2016-3-21 23:12 | 只看该作者
搞定,VBS脚本真麻烦,先转成字符串,在通过XMLDOM转成byte array

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

266

主题

2597

帖子

104

粉丝