•sign主要的作用是创建一个启动扇区,在第511、512个字节上分别写上0x55和0xAA。为此需要为编译系统专门写这么一个四五十行的C工具。
•在shell里很难处理二进制数据,大部分处理二进制数据的都是怎么将二进制数据以ascii的形式展示出来,包括od,objdump等等,而反过来处理的很少
•还好有xxd,xxd正常也是展示二进制数据,但xxd –r可以将展示的十六进制ascii数据再反向回去,这个功能非常适合替换sign
•xxd有两个文件参数,第一个是输入文件名,第二个是输出文件名,第一个可以用“-”代替表示标准输入,第二个可以用“-”代替表示标准输出,如果都没有的话表示从标准输入读,输出到标准输出。输出文件参数对于xxd –r非常有用,因为xxd –r不会把输出文件清空后重新生成,而是在原先已有文件上进行修改,这样xxd –r可以用来给已经存在的输出文件打补丁,sign程序的功能用一句话就可以代替:
–
echo “1FE:55AA” | xxd –r – bootblock
–搞定。
•linux下的xxd使用lazy parser来解析器选项,因此在使用其选项时有点诡异,单字母选项不能合起来用:
–1. xxd –p可以生成plain的十六进制ascii展示形式,没有前面的行号和后面的ascii展示,但xxd –pr效果和xxd –p是一样的,而xxd –rp效果和xxd –r是一样的,要同时使用这两个选项,需要使用xxd –r –p或xxd –p –r,必须分开。
–2. xxd –r永远不会出错,有处理不了的东西直接扔掉:echo 1234 | xxd –rp,但echo 0x1234就可以展示。原因,xxd –rp实际上就等于xxd –r,要求带行号的数据展示出来。正常带行号的格式是“0000008: 1234”这样子,但实际上,xxd只要找到第一个非16禁止字符(这里是”0x”中的”x”),就会当做行号分隔符,后面的数据当做hex来处理。所以echo 0j1234 | xxd –r效果和echo 0x1234 | xxd –r是一样的。
–3. 而因为lazy parser的缘故,echo 1234 | xxd –pr,实际上展示了xxd –p的能力,根本没有-r
分享到:
相关推荐
Root project 'Almost-Famous' +--- Project ':famous-cloud' +--- Project ':famous-config' \--- Project ':famous-unique' +--- Project ':famous-common' +--- Project ':famous-login' +--- Project ':famous-...
spring-boot-starters-project组件功能描述案例message-spring-boot-starter事务消息(基于数据库)-change-log-spring-boot-starter实体变更日志(基于数据库)-validation-spring-boot-starter校验能力(薄封装)-web-...
Version : 5.7 Vendor : Fedora Project Release : 2.20090207.fc11 Date : 2009-02-26 09:37:30 Group : Development/Libraries Source RPM : ncurses-5.7-2.20090207.fc11.src.rpm Size : 1.71 MB Packager :...
Java-EE-Project1:Java EE
Spring-React-Innova-Project:Spring Boot和React Web项目
spring-boot-project依赖根 spring-boot-first-application-sample演示模块 spring-boot-configuration-sample配置模块 spring-boot-import-sample导入实现模块 spring-boot-alias-annotation-sample注解属性别名...
hive 开发UDF 使用maven工程 引发jar包缺失 hive 开发UDF 使用maven工程 引发jar包缺失
训练营项目周2 TDA训练营的第二个项目
Daniels-Project:https://khadijaserag.github.ioDaniels-Project
简介Spring Boot API Project Seed 是一个基于Spring Boot & MyBatis的种子项目,用于快速构建中小型API、RESTful API项目,该种子项目已经有过多个真实项目的实践,稳定、简单、快速,使我们摆脱那些重复劳动,专注...
CS-347-Project1:CS 347 Web开发项目1
HTML-CSS-Project1:HTML&CCS firt项目
kikokills17.github.io-project1:Core2互动项目1
iat339-project2:iat339-project2-蔡妍公园和王Ceyao团队
431-Project1:RIT CSCI 431
Caleb-Project1:最好的商店应用
:gear: 自行设定# Clone repo$ git clone https://github.com/marcorichetta/cs50-project1.git$ cd cs50-project1# Create a virtualenv (Optional but reccomended)$ python3 -m venv myvirtualenv# Activate the...
nd-aws-architect-project1:Udacity AWS Architect ND计划项目1:AWS中的可恢复性
ncpi-project-forge::light_bulb::notebook:Project Forge的材料和计划
2006-03-11 15:26 122,880 关键路径分析.mpp 2005-10-06 00:21 339,456 固定资产信息系统项目.mpp 2005-11-17 16:56 622,592 固定资产信息系统项目.多比较基准.mpp 2005-11-17 16:56 637,440 固定资产信息系统项目....