shell 脚本实现二进制文件数据的异或(xor)操作
2010-02-04 14:06
1686 查看
源码:
#!/bin/sh
#get file length
file_len=`ls -l $1 | awk '{print $5;}'`
> $3
count=0
until [ "$count" -ge "$file_len" ]
do
#get one byte data
temp_buffer=`hexdump -x -s $count -n 1 $1 | (read b1 b2 b3 b4 ; echo "$b2" | tr "[] " "[]" )`
char_buffer=`expr substr $temp_buffer 3 2`
echo $char_buffer
#xor
temp_buffer=`echo $[0x$char_buffer^0x$2]`
#convert to hex
result_buffer=`echo "obase=16;$temp_buffer" | bc`
#write into file
echo -n -e "/x${result_buffer}" >> $3
count=`expr $count + 1`
done
exit 0
使用说明:
./test.sh sourcefile xor_mask target_file
运行脚本,第一个参数是源数据文件,第二个参数是16进制的xor掩码 第三个参数是目标文件
例如:./test.sh data.bin ff data.obj
#!/bin/sh
#get file length
file_len=`ls -l $1 | awk '{print $5;}'`
> $3
count=0
until [ "$count" -ge "$file_len" ]
do
#get one byte data
temp_buffer=`hexdump -x -s $count -n 1 $1 | (read b1 b2 b3 b4 ; echo "$b2" | tr "[] " "[]" )`
char_buffer=`expr substr $temp_buffer 3 2`
echo $char_buffer
#xor
temp_buffer=`echo $[0x$char_buffer^0x$2]`
#convert to hex
result_buffer=`echo "obase=16;$temp_buffer" | bc`
#write into file
echo -n -e "/x${result_buffer}" >> $3
count=`expr $count + 1`
done
exit 0
使用说明:
./test.sh sourcefile xor_mask target_file
运行脚本,第一个参数是源数据文件,第二个参数是16进制的xor掩码 第三个参数是目标文件
例如:./test.sh data.bin ff data.obj
相关文章推荐
- 通过shell脚本实现从文件中读取数据的几种方法
- shell脚本实现简单的模拟用户操作,未加检查点。
- shell脚本实现拷贝大文件显示百分比的代码分享
- Linux的简单shell脚本中修改文件操作
- 使用shell脚本实现USB设备的加载与文件复制
- Shell脚本实现上传zip压缩文件到FTP服务器
- shell脚本实现关于可执行exec文件的自动打包
- [C语言] 文件操作,对二进制文件追加二进制数据与补零的两个函数;
- Android 上实现非root的 Traceroute -- 非Root权限下移植可运行二进制文件 脚本文件
- 一个使用shell脚本实现的修改文件中的字符串
- Android 上实现非root的 Traceroute -- 非Root权限下移植可执行二进制文件 脚本文件
- 这是一个定时脚本,主要功能是遍历该文件夹下的所有文件并存储到数组,对数据中的文件进行操作,一个一个移动到指定的目录下,并删除原有文件
- 函数、文件操作实现数据增删改查---low版本
- MongoDB_03之使用shell命令实现对文档数据的操作
- shell脚本实现将文件中的几行输出合并成一行显示
- 将图像等文件转为二进制数据再输出实现复制
- Shell脚本批量重命名文件后缀的3种实现
- HTML5新特性之文件和二进制数据的操作
- 文件批量转码Shell脚本实现(这里以gbk18030转utf8为例)
- shell脚本判断linux文件修改时间后执行操作