处理BIN文件中的数据

问题描述 投票:0回答:1

我正在尝试为路由器重新刷新库存的固件,但是我对DD命令不了解。现在的步骤如下:、、、、、、、、、、、、、1-从BIN文件中删除前512个字节(我只知道此代码):dd if = firmware.bin of = stripped.bin skip = 1 bs = 512

2-在偏移量0处插入0x30000虚拟字节:我不知道此代码

3-删除文件末尾的最后0x30000字节:我也不知道这个的代码

提前感谢!

linux bin dd
1个回答
0
投票
  1. 最简单的方法是创建一个新文件并移动它。

    dd if=firmware.bin of=firmware.bin.new skip=1 bs=512
    mv firmware.bin.new firmware.bin
    
  2. 只需指定bs = 1 ...的count = 0x30000字节,但是您可能要通过提供合理的bs来对其进行优化。

    dd if=0x30000_dummy_bytes of=stripped.bin bs=1 count=$((0x30000))
    # or better, use bs=512 or bs=4096
    dd if=0x30000_dummy_bytes of=stripped.bin bs=512 count=$((0x30000/512))
    
  3. 使用截断来...截断文件。计算文件的新大小。

  4. truncate -s $(( $(wc -c < stripped.bin) - 0x30000 )) stripped.bin
    

    $((...))是shell算术扩展。

© www.soinside.com 2019 - 2024. All rights reserved.