相关文章推荐
任性的消炎药  ·  JPA ...·  3 月前    · 
慷慨大方的镜子  ·  React ...·  2 年前    · 

sed 是个查找替换文本文件的工具,通常是以行为单位,关于它的用法网上有很多,但都是针对文本文件的。

sed以文本模式替换可执行文件(如exe和dll),会导致0x0D,0x0A(换行符)被意外破坏掉,程序文件被损坏。

所以需要以二进制方式查找和替换数据,仔细研究了一下,终于有了结果,做个笔记。

其实就是加上-b参数:

一、从文件中删除指定数据

sed -b -i  '/\x00\x11\x22\x33/d' demo.exe

这个命令将demo.exe文件中的00,11,22,33序列全部删掉。

二、替换文件中的数据

sed -b -i 's/\x00\x11\x22\x33/\xAA\xBB\xCC\xDD/g' demo.exe

这个命令将替换demo.exe文件中的00,11,22,33序列为AA,BB,CC,DD

sed 是个查找替换文本文件的工具,通常是以行为单位,关于它的用法网上有很多,但都是针对文本文件的。sed以文本模式替换可执行文件(如exe和dll),会导致0x0D,0x0A(换行符)被意外破坏掉,程序文件被损坏。所以需要以二进制方式查找和替换数据,仔细研究了一下,终于有了结果,做个笔记。其实就是加上-b参数:一、从文件中删除指定数据sed -b -i '/\x00\...
昨天一个好朋友,找我帮忙:        说想定向的修改 二进制 文件 指定位置的数据,希望我能写个脚本,通过某个 csv 文件 里面的 定位数据,和对应值,以及数位长度进行修改。 要处理的数据 文件 替换 的数据:csv 文件 的数据: 问了好半天,他认真的告诉我:A.csv 文件 里面一行三个信息,第一列是DATA.BIN 文件 的某个要 替换 的数据的 偏移地址,第二列是对应地址要 替换 的值,第三列是要 替换 的长度,其中要 替换 的长度都可弄成1字节,到时候他写
sed -bin:编译 sed 脚本 该项目允许将 sed 转换为C ,以便能够编译结果并生成与原始 sed 脚本具有完全相同行为的 二进制 文件 ,例如echo foo | sed s/foo/bar/将被echo foo | ./ sed -bin 替换 echo foo | ./ sed -bin 。 克隆存储库并移至其目录内,您将需要常用的UNIX内核并构建utils( sed ,libc,C编译器,shell,make)。 注意:该项目目前已在Fedora 32上与GNU libc(2.31),GNU sed (4.5)和GCC(10.1.1)一起进行了测试。在FreeBSD 12.1上进行了一些其他测试。 让我们举一个简单的例子: sh$ echo foo | sed s/foo/bar/ 假设您要编译s/foo/bar/ : 使用提供的shell脚本,这可以完成
sed 简介 sed 是linux中提供的一个外部 命令 ,它是一个行(流)编辑器,非交互式的对 文件 内容进行增删改查的操作,使用者只能在 命令 行输入编辑 命令 、指定 文件 名,然后在屏幕上查看输出。它和文本编辑器有本质的区别。 文本编辑器: 编辑对象是 文件 行编辑器:编辑对象是 文件 中的行 也就是前者一次处理一个文本,而后者是一次处理一个文本中的一行。这个是我们应该弄清楚且必须牢记的,否者可能无法理解 sed 的运行原理和使用精髓。 sed 数据处理原理 sed 命令 sed 命令 sed [option