用于操作二进制文件的脚本命令(在linux上)

时间:2012-09-04 11:26:54

标签: linux shell

我正在寻找一种机制来使用唯一的设备ID来操纵我的eeprom图像。我想在make文件中执行此操作,以便设备自动获取新ID,然后将其更新为数据映像,然后将其刷新。在伪代码中:

wget http://my.centralized.uid.service/new >new.id
binedit binary.image -write 0xE6 new.id
flash binary.image into device

首先我们将一个id放入一个单独的文件中,然后我们用这个ID文件的内容覆盖图像(来自给定的偏移量)。然后闪光。但是如何做第二部分呢?我查了 bvi ,它似乎有一些脚本功能,但我并没有完全理解它,说实话vi总是给我毛骨悚然。

事先感谢您的帮助!

3 个答案:

答案 0 :(得分:2)

如果您知道要替换的文件的偏移量,则可以使用split命令将初始文件拆分到偏移量。然后可以使用cat命令将所需的部分连接在一起。

使用二进制文件时的另一个有用工具是od,它允许您以人类可读的格式检查二进制文件。

答案 1 :(得分:2)

(完全披露:我做了初步投票,以复制方式结束。这个答案改编自引用的问题。)

ddnotrunc选项一起使用:

offset=$(( 0xe6 ))
length=$( wc -c < new.id )
dd bs=1 if=new.id of=binary.image count=$length seek=$offset conv=notrunc

您可能希望先在副本上尝试此操作,以确保其正常工作。

答案 2 :(得分:0)

我可能会使用像Perl这样的东西。请参阅here,特别是标有更新随机访问文件的部分(示例here