昨天一个好朋友,找我帮忙:
说想定向的修改二进制文件指定位置的数据,希望我能写个脚本,通过某个 csv 文件里面的 定位数据,和对应值,以及数位长度进行修改。
要处理的数据文件:
替换的数据:csv文件的数据:
问了好半天,他认真的告诉我:A.csv文件里面一行三个信息,第一列是DATA.BIN文件的某个要替换的数据的 偏移地址,第二列是对应地址要替换的值,第三列是要替换的长度,其中要替换的长度都可弄成1字节,到时候他写 csv 文件值的长度写一个字节长度就行了…
好吧,需求出来了,开始分析一下处理方式:
首先是用啥语言写: 仅仅是对两个文件处理,难度在二进制文件数据处理,似乎一个脚本就足够了,用 python 吧,我挺喜欢这语言工具的,
其次是怎么处理:文件读取可以用 open 函数,用二进制模式去读,到内存就是一长串01数据,想了很多,搞成 string 对象的话,程序会根据数据去查asscii表,然后能转化成对应的字符,如下面的这样子,确实可以用 eval 转回去: