我正在尝试为路由器重新刷新库存的固件,但是我对DD命令不了解。现在的步骤如下:、、、、、、、、、、、、、1-从BIN文件中删除前512个字节(我只知道此代码):dd if = firmware.bin of = stripped.bin skip = 1 bs = 512
2-在偏移量0处插入0x30000虚拟字节:我不知道此代码
3-删除文件末尾的最后0x30000字节:我也不知道这个的代码
提前感谢!
最简单的方法是创建一个新文件并移动它。
dd if=firmware.bin of=firmware.bin.new skip=1 bs=512
mv firmware.bin.new firmware.bin
只需指定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))
使用截断来...截断文件。计算文件的新大小。
truncate -s $(( $(wc -c < stripped.bin) - 0x30000 )) stripped.bin
$((...))
是shell算术扩展。