how to access and operate a binarry file ?

Linux下创建安装包的四种方式 Linux下创建安装包的四种方式 1. rpmbuild 以Ubuntu/Debian下的virt-viewer-8.0为例: 安装工具 apt-get install rpm 下载virt-viewer-8.0源码 wget https://releases.pagure.org/virt-viewer/virt-viewer-8.0.tar.gz ./ 解压编译 这... 阅读详情


In some exception case, we need to check and modified a binary file byte by byte , in a Windows-like OS, we could use some tools like UtralEdit and so on.

but in a Linux/Unix-like OS, how can we do this ?

I suggest VIM.

VIM is a smart and powerful and flexible tool , it can do too much more things than our cognition.

here I'll show you how to use Vim to read and modified a binary file.


first, open the binary file by vim :

       vim  -b  test.bin

    at this this moment,  you'll see some digital gibberish like below:

         QFI<fb>^@^@^@^C^@^@^@^@^@^@^A^H^@^@^@*^@^@^@^P^@^@^@^B@^@^@^@^@^@^@^@^@^@^@^R^@^@^@^@^@^C^@^@^@^@^@^@^@^A^@^@^@^@^@^A^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^    @^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^D^@^@^@hh^C<f8>W^@^@^@<90>^@^@dirty bit^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^Acorrupt bit^@^@    ^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^A^@lazy refcounts^@^@^@^


...


then, type "%!xxd" in Vim's command mode, you'll see the digital gibberish been converted to hex and showed like below:

    1 0000000: 5146 49fb 0000 0003 0000 0000 0000 0108  QFI.............
    2 0000010: 0000 002a 0000 0010 0000 0002 4000 0000  ...*........@...
    3 0000020: 0000 0000 0000 0012 0000 0000 0003 0000  ................
    4 0000030: 0000 0000 0001 0000 0000 0001 0000 0000  ................
    5 0000040: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    6 0000050: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    7 0000060: 0000 0004 0000 0068 6803 f857 0000 0090  .......hh..W....
    8 0000070: 0000 6469 7274 7920 6269 7400 0000 0000  ..dirty bit.....
    9 0000080: 0000 0000 0000 0000 0000 0000 0000 0000  ................
   10 0000090: 0000 0000 0000 0000 0000 0000 0000 0000  ................
   11 00000a0: 0001 636f 7272 7570 7420 6269 7400 0000  ..corrupt bit...
   12 00000b0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
   13 00000c0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
   14 00000d0: 0100 6c61 7a79 2072 6566 636f 756e 7473  ..lazy refcounts
   15 00000e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
   16 00000f0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
   17 0000100: 0000 0000 0000 0000 2f72 6f6f 742f 7465  ......../root/te
   18 0000110: 7374 2f69 6d61 6765 2f69 6133 3265 5f72  st/image/ia32e_r
   19 0000120: 6865 6c37 7532 5f63 7075 3230 3036 2e69  hel7u2_cpu2006.i
   20 0000130: 6d67 0000 0000 0000 0000 0000 0000 0000  mg..............


now, you can modify the hex words in the Vim's edit mode, for example , here I will modify the red block of the above text.

after it , type "%!xxd   -r" to convert the hex type to binary type,

save this file like you always doing in Vim. Now , this binary file had been modified .


open this file again , you'll see like below:

    1 0000000: 0000 1400 0000 0000 0000 0000 0000 0000  ................
    2 0000010: 0000 002a 0000 0010 0000 0002 4000 0000  ...*........@...
    3 0000020: 0000 0000 0000 0012 0000 0000 0003 0000  ................
    4 0000030: 0000 0000 0001 0000 0000 0001 0000 0000  ................
    5 0000040: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    6 0000050: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    7 0000060: 0000 0004 0000 0068 6803 f857 0000 0090  .......hh..W....
    8 0000070: 0000 6469 7274 7920 6269 7400 0000 0000  ..dirty bit.....
    9 0000080: 0000 0000 0000 0000 0000 0000 0000 0000  ................
   10 0000090: 0000 0000 0000 0000 0000 0000 0000 0000  ................
   11 00000a0: 0001 636f 7272 7570 7420 6269 7400 0000  ..corrupt bit...
   12 00000b0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
   13 00000c0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
   14 00000d0: 0100 6c61 7a79 2072 6566 636f 756e 7473  ..lazy refcounts
   15 00000e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
   16 00000f0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
   17 0000100: 0000 0000 0000 0000 0000 0000 0000 0000  ................
   18 0000110: 7374 2f69 6d61 6765 2f69 6133 3265 5f72  st/image/ia32e_r
   19 0000120: 0000 0000 0000 0000 0000 0000 0000 0000  ................
   20 0000130: 0000 0000 0000 0000 0000 0000 0000 0000  ................

   21 0000140: 0000 0000 0000 0000 0000 0000 0000 0000  ................
   22 0000150: 0000 0000 0000 0000 0000 0000 0000 0000  ................


see the red block , what difference you've found than before?

good job !


haha, thanks.



一个rpm包的艰难诞生 问题背景 环境:CentOS 7.5 本打算使用checkinstall来打包spice-server,奈何CentOS7.5下没法yum install checkinstall 遂去网上找rpm包安装,然后总是报error: /xx/xx/libxxx.so is not a directory 怀疑是版本问题,然后去 git clone http://checkinstall.izto... 阅读详情

相关推荐

手把手教你用闲置安卓手机搭建个人收款系统(蓝鲸支付私有化部署实战)

本文详细介绍了如何利用闲置安卓手机搭建个人收款系统,实现私有化支付部署。通过开源技术栈和容器化方案,零成本构建安全、高效的支付网关,解决传统支付平台的数据安全和资金风险问题。特别适合个人开发者和小微企业主,无需复杂审批,资金实时到账,显著降低运营成本。

weixin_30363285的博客 380

putty之pscp用法

我用pscp主要是拷贝文件,目前涉及到的都是简单的拷贝,从单个文件到文件夹。 从Linux机拷贝到windows机上,如下即是简单用法,(想从windows往Linux拷的,倆路径参数调一下(Windows在前,Linux在后)就行)。 在window机上CD进入pttty安装目录: cd "C:\program files (x86)\Putty" 单个文件的

Benjamin_Xu的专栏 7601

汇川Easy 301 和MCGS进行Modbus RTU通讯(485)浮点数读取和写入

4DF0001对应寄存器D0,4DF0003对应寄存器D2。注意:要选com2口,com1口是232通讯。

qq_61916672的博客 2901

yum lock

今天在Fedora上用yum突然碰到,yum lock的问题,

Benjamin_Xu的专栏 2262

从零构建C++ Gerber解析器:以PCB缺陷检测为目标的实战指南

本文是一份面向PCB缺陷检测项目的实战指南,详细介绍了如何从零开始使用C++构建高性能的Gerber文件解析器。文章深入剖析了Gerber RS-274X格式,并提供了完整的开发环境搭建、核心数据结构设计、解析步骤实现以及为缺陷检测优化的具体方案,旨在帮助开发者获得对PCB制造数据的深度控制与极致性能。

weixin_29291185的博客 184

YOLOv8车辆碰撞识别检测系统(项目源码+YOLO数据集+模型权重+UI界面+python+深度学习+环境配置+目标检测)

随着我国汽车保有量的持续攀升,道路交通事故数量居高不下,车辆碰撞损伤的快速、精准评估已成为交通安全管理、保险理赔定损以及汽车后市场服务中的关键环节。传统的人工目视查验方法高度依赖评估人员的专业经验,不仅主观性强、效率低下,而且在复杂光照、多角度遮挡等真实场景下难以保证评估的一致性和可复现性。计算机视觉与深度学习技术的迅猛发展,为目标检测任务提供了强有力的技术支撑,使得基于视觉的车辆损伤自动化识别成为可能。

斌擎科技 129

一个STAF的RC21的问题的解决和思考

最近的项目需要用到STAF来向guest VM来传递一些指令,环境搭建好之后,host端测试时候经常会出现报错,返回值21。 查找staf的 API Return Codes ,RC21 的解释如下: 21 STAF Not Running This indicates that STAFProc is not running on the local mach

Benjamin_Xu的专栏 2164

Python反爬实战|动态渲染+高可用IP代理集群,稳定爬取京东/淘宝10万+商品数据

做Python电商爬虫的同学,应该都对京东、淘宝的反爬机制深有体会——这两个平台的反爬体系,堪称国内网站的天花板,远比普通资讯、政务网站的反爬严格十倍不止。用requests库请求商品列表,返回的永远是只有骨架的空HTML,商品标题、价格、销量全是前端JS异步加载,抓包分析接口发现参数全是加密的signtoken,解密成本无限高;用selenium开无头浏览器爬取,刚爬3-5页就触发风控,页面直接返回403,IP被封禁,甚至连Cookie都直接失效;

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1585

关于git的一些用法

目前关于git,用到最多的就是下面这几条命令: git pull git commit, git commit -asm “ log ” git push 嗯,还有个几个: git log git diff git status 哈哈哈,真够少的,今后再碰到什么再加吧,现在先占个位置。

Benjamin_Xu的专栏 1024

60、拓扑码:从理论到应用

本博客深入探讨了拓扑码的基本理论、构造方法及其在量子计算中的应用。重点介绍了颜色码的拓扑起源、编码量子比特的计算方法、弦算子的构造与性质、边界条件的影响、同调描述以及与统计模型相关的错误阈值分析。同时,还涵盖了拓扑码的历史发展、与其他拓扑码的关系、与凝聚态系统的联系,以及其在激发态和高维中的表现。博客展示了拓扑码在容错量子计算和未来量子信息领域的广阔前景。

o1p2q3r的博客 129

【Proteus仿真】51单片机+DAC0832+数码管制作0-25V电压可调

【Proteus仿真】51单片机+DAC0832+数码管制作0-25V电压可调

perseverance51博客 2117

how to use tmux?

This article is just  a primary SPEC to show some basic and common operations for the TMUX. On the tmux's official page: 点击打开链接 it said like below:  tmux is a terminal multiplexer What is a ter

Benjamin_Xu的专栏 776

14、Java 中 TAF 和 FCF 的使用及 Oracle 数据库升级与迁移指南

本文详细介绍了Java中实现高可用性的TAF(透明应用故障转移)和FCF(快速连接故障转移)技术,以及如何将Oracle 9iR2 RAC环境升级到10gR2 RAC,并将数据从OCFS迁移到ASM。通过示例代码和操作步骤,帮助开发者和数据库管理员更好地应对数据库故障和数据迁移问题,提升系统的可用性和性能。

egg99的博客 110

关于 vi && vim 的一些用法

好久不写博客了,距离上一篇差不多快一年了,这可真不是个好现象。 这两天闲一点,继续写起来。 今天来写一点自己在运用vi&&vim过程中的经验和体会,以下的内容基本都是本人实际使用过的。 基本操作: w、q、wq、q!、w! insert、delete、Backspace g,文档开头 G,文档结尾 查找与替换: /,单斜杠,查找 n,下一个

Benjamin_Xu的专栏 718

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Linux下SSH的安装和使用

上一篇文章讲了putty下面pscp的用法,发现漏了一样东西,那就是putty是要和SSH配合使用的, 那么这就引出这篇文章的话题,Linux下SSH的安装和使用。

Benjamin_Xu的专栏 651

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

关于gdb的一些用法

今年的项目,有时会用到gdb来调试代码。 下面简单记录下一些gdb的用法,都是我用过的,没用过的暂时不记。     -l        --list              list function decleration or breakpoints or sth else.     -r        --run     -i        --info    

Benjamin_Xu的专栏 628

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

vim/neovim VS emacs主观感受

程序员圈子里非常经典的一句话:中文通常翻译为:Vim 是编辑器之神,Emacs 是神的编辑器。也有一种更贴切的表达:Vim 是神级编辑器,Emacs 是神仙用的编辑器。

lxyoucan的博客 231

DSH (DeepSeek Harness) Windows 升级安装指南20261107

注意:如果在普通窗口执行 nvm 提示找不到命令,或执行 nvm use 提示 Access is denied,请务必关闭当前窗口,重新打开一个管理员CMD 执行上述完整路径命令。找到 .credentials.yaml,将其重命名为 .credentials.yaml.bak(备份并使其失效)。Node.js Storage Location:可改到非系统盘(如 D:\dev\nvm,避免路径含空格或中文)。打开文件资源管理器,进入 C:\Users<你的用户名>.dsh\。

fengye207161的博客 194

linux下vim的基本操作--24个操作指令

本文系统讲解vim常用光标移动、文本编辑与视图操作技巧。通过g(global)实现行跳转(如gg到顶,G到底,nG到第n行),hjkl控制方向,^和$定位行首行末,w/b按单词移动。文本操作包括yy复制、dd删除、p粘贴、u/Ctrl+r撤销重做。x删后,X删前,r替换字符。分屏用vs或ctrl+w切换。指令执行需加!,如!gcc编译。附配置参考,助快速上手。

mewowaBc的博客 230

Linux 开发工具链上手:yum、vim、gcc、gdb、make 与第一个进度条

从装软件到写代码:用 yum 管包,用 vim 三种模式编辑,用 gcc 走完预处理/编译/汇编/链接四个阶段,用 gdb 断点调试,用 make 把构建自动化,最后手写一个 \r 刷新的进度条,并用 git 三板斧把代码推到 GitHub。附速查表与 12 道自测题。

BIII__的博客 180

TanStack Router 更新构建工具链:Node.js 兼容性、路由分割与前端工程实践

本文分析了前端路由框架升级带来的隐性风险,以 TanStack Router 2026 年更新为例,揭示现代路由系统深度参与构建流程的特性。文章指出,依赖升级不仅影响运行时行为,更可能改变代码分割、模块加载与构建输出。重点讨论了 Node.js 版本兼容性(要求 ^20.19.0 或 >=22.12.0)、Vite 5 不再支持、esbuild 自动分割配置的显式报错等变化,并强调“构建成功”不等于“优化生效”。通过实操示例,建议开发者通过 engines 字段、CI 检查和环境一致性管理,将路由、构建工具

weixin_47502228的博客 731

【Linux】环境开发工具(vim,gcc,g++,Makefile)

本文系统介绍了Linux环境下C/C++开发的三大核心工具:Vim编辑器配置(基于vimplus实现IDE化)、GCC/G++编译流程(预处理、编译、汇编、链接及静态/动态库区别)与Makefile自动化构建。通过vimplus一键安装实现vim功能增强,掌握vim三模式操作;理解gcc/g++四阶段编译原理;利用Makefile实现依赖管理与自动化编译,提升开发效率。内容涵盖安装配置、使用技巧与工程实践,适用于Ubuntu/CentOS环境下的高效编程。

2502_91877193的博客 353

理解 Linux 动态库加载:LD_LIBRARY_PATH

flyfish

二分掌柜的 347

Linux-iostat命令详解

Linux命令学习记录

m0xin的博客 118

USB 技术系列 11 · USB Linux 驱动框架

本文系统解析Linux USB驱动框架,涵盖USB Core、HCD(xhci-hcd/dwc3)、类驱动(CDC/HID/Mass Storage)分层架构,详解usb_device_id匹配、probe/disconnect生命周期及Device Tree配置。结合RISC-V N300实战,揭示Host/Device双模式驱动开发核心逻辑,助力嵌入式BSP开发者掌握USB子系统全栈能力。

peter_pan_study的博客 252
上一篇: A way to extend a RAW image's storage by using qemu-img
下一篇: how to use tmux?
Benjamin_Xu
博客等级 码龄14年 46粉丝 54原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值