使用dd命令修改bin文件

  • 1.使用环境
  • 2.指令详解
  • 3.举例验证
  • 4.参考文献

1.使用环境

Linux环境下,使用shell脚本,修改bin文件。比如要在image.bin镜像文件的0xF000地址处填充一段数据。

2.指令详解

dd if=输入文件 of=输出文件 <ibs/obs/bs=块大小> seek=偏移块个数 conv=<关键字>

参数说明:

  • if=文件名:输入文件名,默认为标准输入。即指定源文件。
  • of=文件名:输出文件名,默认为标准输出。即指定目的文件。
  • ibs=bytes:一次读入bytes个字节,即指定一个块大小为bytes个字节。
    obs=bytes:一次输出bytes个字节,即指定一个块大小为bytes个字节。
    bs=bytes:同时设置读入/输出的块大小为bytes个字节。
  • cbs=bytes:一次转换bytes个字节,即指定转换缓冲区大小。
  • skip=blocks:从输入文件开头跳过blocks个块后再开始复制。
  • seek=blocks:从输出文件开头跳过blocks个块后再开始复制。
  • count=blocks:仅拷贝blocks个块,块大小等于ibs指定的字节数。
  • conv=<关键字>,关键字可以有以下11种:
    conversion:用指定的参数转换文件。
    ascii:转换ebcdic为ascii
    ebcdic:转换ascii为ebcdic
    ibm:转换ascii为alternate ebcdic
    block:把每一行转换为长度为cbs,不足部分用空格填充
    unblock:使每一行的长度都为cbs,不足部分用空格填充
    lcase:把大写字符转换为小写字符
    ucase:把小写字符转换为大写字符
    swap:交换输入的每对字节
    noerror:出错时不停止
    notrunc:不截短输出文件
    sync:将每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐。
  • –help:显示帮助信息
  • –version:显示版本信息

3.举例验证

我的情况是:需要在镜像文件image.bin的0xF000地址处,插入一段数据,比如数据为0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08

  1. 我的数据是固定不变的,所以可以事先用VScode的Hex Editer插件把这段数据放进另一个bin文件中,比如test.bin;
  2. 使用dd指令用test.bin替换掉image.bin的0xF000处的数据
  3. dd指令只能进行两个文件的替换,所以数据一定要先放进文件中!

执行脚本前image.bin 0xF000地址处全是0xFF:

脚本如下:

#!/bin/bash#seek必须跟十进制数! conv必须跟参数notrunc
dd if=test.bin of=image.bin bs=1 seek=61440 conv=notrunc
  • test.bin数输入文件;
  • image.bin是输出文件;
  • bs=1表示同时设置输入输出块大小为1字节;
  • seek=61400表示从输出文件(image.bin)开头跳过61400个块(每个块1字节大小)后再开始复制;
  • conv=notrunc表示不截短输出文件;

执行脚本后,image.bin 0xF000地址处被替代:

注意:seek必须跟十进制数! conv必须跟参数notrunc!一定是两个文件的替换!

4.参考文献

菜鸟教程

禁止转载!!!

使用dd命令修改bin文件相关推荐

  1. linux dd flash,用dd命令生成bin文件,而不用拆flash读取文件

    对于linux系统,善用dd命令,可以做到直接生成bin文件,而不用生产拆flash. 1) 读flash,保存成bin文件: ~ $ cat /proc/mtd dev: size erasesiz ...

  2. Linux运维:ulimit命令修改打开文件的句柄数

    文章目录 ulimit命令语法 参数说明: 查看本机设置的参数: ulimit修改打开文件的句柄数 场景 解释: 修改 1.修改file-max 2.修改ulimit的open file 注意事项 d ...

  3. 20220215-CTF-MISC-BUUCTF-爱因斯坦-binwalk分析图片-dd命令分离ZIP文件--图片属性中寻找密码

    MISC-BUUCTF-爱因斯坦 注意:得到的 flag 请包上 flag{} 提交 [1]下载附件,并解压,得到一张图片(misc2.jpg): [2]binwalk分析: 显示里面有一个ZIP压缩 ...

  4. linux使用dd命令拷贝/生成文件

    一.dd命令 1. 作用 Copy a file, converting and formatting according to the operands. 复制一个文件,根据操作数进行转换和格式化. ...

  5. linux 使用dd命令 写入镜像文件到u盘

    1.使用 df -h ,查看一下当前各个磁盘 user@host ~/ $ df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 119 ...

  6. bat命令 修改ini文件内容_Linux文件内容查看相关命令

    欢迎大家一起学习交流: 正在跳转​jq.qq.com Linux系统中使用以下命令来查看文件的内容: cat.tac.nl.more.less.head.tail 你可以使用 man [命令]来查看各 ...

  7. linux dd新建文件,linux dd命令 创造一个文件

    WinForm 窗体属性 窗体美化 WinForm是·Net开发平台中对Windows Form的一种称谓. Windows窗体的一些重要特点如下: 功能强大:Windows窗体可用于设计窗体和可视控 ...

  8. 每日一个linux 命令-修改linux文件权限命令:chmod

    Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作. 文件或目录的访问权限分为只读,只写和可执行三种.以文件为例,只读权限表示只允许读其内容,而禁 ...

  9. bat命令 修改ini文件内容_关于mysql使用中文乱码;mysql修改ini文件无法启动;以及mysql卸载无法安装的一系列问题说明。...

    今天在用mysql时候出现了中文乱码问题,本人也不是什么大牛,所以就去网上找解决方法,问题是越解决越多,从开始的乱码问题到中间的mysql无法启动,最终到mysql再次安装无法安装,真的是搞的心态都要 ...

  10. 只需要MTK工程的bin文件、手机和下载线便可以修改各种手机软件

    提供样机即可改软件(MTK平台):    手机加各国语言    调 屏(LCD)驱动,    调 字库(FLASH)驱动...     修改输入法.字体大小.快捷键功能    修改开关机画面.待机画面 ...

最新文章

  1. JPA学习笔记2——JPA高级
  2. 离职半年了,最近又开始被吐槽输出不够...
  3. 浙江理工大学2019年5月赛
  4. css3轮播不用jpuery_js和CSS3 3D轮播图
  5. centos安装jenkins
  6. androidstudio在mainactivity实现监听器借口无法抽象_趣操作,Tomcat如何实现一键式启停?
  7. Python高级——HTTP协议
  8. 文档下载:《Oracle 20c和19c的新特性解密》
  9. 推荐系统 | (4) 可解释推荐系统---知其然,知其所以然
  10. 使用Python发送邮件(图片、表格、附件) 系列三: 发送工作报表之透视表自动刷新数据
  11. 兼容iOS10 的一些整理
  12. 思维导图 基础篇(03)思维方法-发散/聚合思维
  13. “熊猫烧香”主犯:毒王?黑客英雄?
  14. 板内板间通信协议及接口(四)SPI
  15. st58服务器装系统,联想 Thinksystem ST58服务器介绍
  16. Windows server 2012远程桌面会话主机和远程桌面授权。
  17. 【深入理解计算机系统】第三章重点汇总
  18. 数据分析入门书籍,你看过几本
  19. Android百度地图开发之指南针
  20. Python选择练习题(19~36)

热门文章

  1. 20140711 loop-II 调和数列
  2. python 提取字幕_使用Python从zimuku下载字幕
  3. jq插件,图片或者视频懒加载
  4. 微软开始彻底封杀IE浏览器
  5. Qt C++招聘要求
  6. 【8001】解决打开idea出现红色感叹号报错信息Cannot find keymap Windows copy?
  7. Excel查询两列数字的重复值
  8. echarts立体柱状图
  9. 基尔霍夫定律(Kirchhoff laws)
  10. 直击备份恢复的痛点:基于 TiDB Binlog 的快速时间点恢复