当前位置: 首页 > news >正文

改写二进制文件

以下是一些常见的方法和工具:

1. 使用十六进制编辑器

十六进制编辑器 是最直接的工具之一,用于查看和编辑二进制文件中的数据。它允许你以十六进制格式查看和修改文件内容。

  • 常见十六进制编辑器
    • HxD(Windows)
    • Hex Fiend(macOS)
    • GHex(Linux)
    • Bless(Linux)

步骤

  1. 打开十六进制编辑器。
  2. 加载你要修改的二进制文件。
  3. 以十六进制或 ASCII 格式查看文件内容。
  4. 修改需要更改的字节。
  5. 保存文件。

2. 使用 xxd 命令(Linux)

xxd 是一个在 Linux 上将二进制文件转换为十六进制格式的工具,也可以用来将十六进制数据转换回二进制格式。

示例

  1. 查看二进制文件的十六进制表示:
    xxd filename.bin 
  2. 将修改后的十六进制数据转换回二进制:
    xxd -r -p hexfile.txt filename.bin 
    其中 hexfile.txt 是包含十六进制数据的文件。
    xxd -p hexfile.txt.bin > hexfile.txt

示例

#include <stdio.h>int main() {char p[] = "hello world";puts(p);return 0;
}
cc test.c -o a.out
xxd -p test.c > test.txt

 修改 "he" 为 "HE" 即 "6865" 为 "4845"

05faf32c0c2743688b42bfd6ad12056b.png

然后

xxd -r -p test.txt > ./a.out
#执行./aout
./a.out

 065899ff60ac4eb3938ea8c0a871ff39.png

3. 使用 dd 命令(Linux)

dd 是一个强大的命令行工具,用于低级别的文件操作,可以用来读取和写入二进制数据。

示例

  1. 从文件中提取部分数据:

    dd if=filename.bin of=part.bin bs=1 skip=10 count=5 

    其中 skip=10 是跳过前10个字节,count=5 是读取5个字节。

  2. 将数据写入到文件中:

    dd if=part.bin of=filename.bin bs=1 seek=10 conv=notrunc 

    其中 seek=10 是从第10个字节开始写入,conv=notrunc 确保不会截断目标文件。

4. 使用编程语言

如果你需要更复杂的操作,可以使用编程语言(如 Python、C++)来修改二进制文件。

Python 示例

with open('filename.bin', 'r+b') as f:f.seek(10) # 跳到第10个字节f.write(b'\xFF') # 写入一个字节的值 

C++ 示例

#include <fstream>int main() {std::fstream file("filename.bin", std::ios::in | std::ios::out | std::ios::binary);if (file.is_open()) {file.seekp(10);  // 跳到第10个字节file.put(0xFF);  // 写入一个字节的值file.close();}return 0;
}

 

 


http://www.mrgr.cn/news/21798.html

相关文章:

  • The One You Love 你爱的那个人
  • 数据库面试题学习
  • 后仿真中《建立违例和保持违例》你死板思维了吗?
  • 概率DP (由一道绿题引起的若干问题。目前为一些老题,蒟蒻的尝试学习1.0)
  • 基于Spring Boot的火车订票管理系统
  • 【Unity小技巧】物体遮挡轮廓描边效果
  • springboot数据库连接由localhost改成IP以后访问报错500(2024/9/7
  • Effective Java学习笔记--39-41条 注解
  • 洛谷 凸多边形划分
  • 如何完成本科毕业论文设计
  • 11.4.软件系统分析与设计-算法的分析与设计
  • gcc make cmake例程
  • 70-java write类应用场景
  • 【重学 MySQL】十六、算术运算符的使用
  • 【数据库实战】1_Oracle_命中关联人或黑名单或反洗钱客户
  • MySql约束练习
  • 【JAVA】第四天
  • 【Linux】萌新看过来!一篇文章带你走进Linux世界
  • python读取pdf内容写入到Excel表格中
  • 基于JSP的实验室管理系统