•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
分享到:
相关推荐
1. **Spring Boot概述** Spring Boot是由Pivotal Team创建的,旨在简化Spring应用的初始搭建以及开发过程。它预设了各种默认配置,使得开发者可以快速上手,同时保持足够的灵活性以适应各种复杂的项目需求。 2. **...
hive 开发UDF 使用maven工程 引发jar包缺失 hive 开发UDF 使用maven工程 引发jar包缺失
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 :...
spring-boot-project依赖根 spring-boot-first-application-sample演示模块 spring-boot-configuration-sample配置模块 spring-boot-import-sample导入实现模块 spring-boot-alias-annotation-sample注解属性别名...
开源电商项目"shoping-project"是一个为开发者和商家提供参考的电子商务平台,旨在帮助他们快速构建自己的在线商店。该项目的核心是基于开源技术和敏捷开发理念,提供了丰富的功能和可扩展性,使得用户可以根据自身...
简介Spring Boot API Project Seed 是一个基于Spring Boot & MyBatis的种子项目,用于快速构建中小型API、RESTful API项目,该种子项目已经有过多个真实项目的实践,稳定、简单、快速,使我们摆脱那些重复劳动,专注...
gEDA homepage: http://www.geda-project.org -----gschem.exe 1.9.2 (g9e1f72c) -----pcb.exe Compile Time Options ----- GUI: gtk : Gtk - The Gimp Toolkit Exporters: bom : Exports a Bill of Materials ...
431-Project1:RIT CSCI 431
: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...
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 固定资产信息系统项目....
midterm-project-aagamsh1:GitHub Classroom创建的midterm-project-aagamsh1
在 SpringBoot 源码解析中,我们可以看到,源码模块主要分为两个部分:spring-boot-project 和 spring-boot-tests。其中,spring-boot-project 是源码模块,而 spring-boot-tests 是一些测试的子模块。 spring-boot...
spring-boot-project:Java Spring Boot项目实施
Spring Boot Project使使用Dubbo作为RPC框架轻松创建应用程序。 此外,它还提供: (例如,注释驱动,自动配置,外部化配置)。 (例如,安全性,运行状况检查,外部化配置)。 Apache Dubbo | ˈdʌbəʊ | 是...
【毕业设计订餐系统源码-cs-4420-project2:cs-4420-project2】是一个面向IT专业学生的毕业设计项目,旨在帮助学生掌握开发餐饮订餐系统的全过程。这个开源项目可能用于教育目的,让学生在实践中学习软件工程、数据库...
team-project-team2:由GitHub Classroom创建的team-project-team2
Spring Boot API Project Seed 是一个基于Spring Boot & MyBatis的种子项目,用于快速构建中小型API、RESTful API项目,该种子项目已经有过多个真实项目的实践,稳定、简单、快速,使我们摆脱那些重复劳动,专注于...
1. **后端(Spring Boot)**:通常包含`src/main/java`目录下的`main`应用入口,`Application.java`是启动类。`pom.xml`文件定义了项目的依赖,包括Spring Boot的相关模块(如web、data、security等),以及数据库连接...