Linux/Mac下二进制可执行文件与十六进制文本文件互转

假设 filebin 为可执行的二进制文件名。filebinhex为其对应的十六进制字符文件。

cat filebin  | od -A n -v -t x1 | tr -d ' \n' > filebinhex.txt  

备份原文件:

mv filebin filebin_backup  

替换对应的字符串文件:
Linux下可如下替换:

sed -i 's/6e533e406a45f0b6372f3ea10717000c7120127cd915cef8ed1a3f2c5b/785782391ad0b9169f17415dd35f002790175204e3aa65ea10cff20818/g' filebinhex.txt  

Mac下替换和Linux下有些区别,需要设置备份。
无需备份替换:

sed -i "" 's/aaa/bbb/g' filebinhex.txt 

备份替换:

sed -i "_bak" 's/6e533e406a45f0b6372f3ea10717000c7120127cd915cef8ed1a3f2c5b/785782391ad0b9169f17415dd35f002790175204e3aa65ea10cff20818/g' filebinhex.txt 

替换后,将文本文件转换到二进制文件

cat filebinhex.txt | xxd -r -p > filebin  

删除中间生成的临时文件。

给转换的文件增加可执行权限:

chmod +x filebin

参考:
https://www.cnblogs.com/noxy/p/6863474.html?utm_source=itdadao&utm_medium=referral


版权声明:本文为rznice原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。