
1.首先对二进制文件进行编码
例如文件: binary.zip
]# base64 binary.zip UEsDBAoAAAAAAPVODFWspIpYBQAAAAUAAAAGABwAYmluYXJ5VVQJAAMds/ViHbP1YnV4CwABBAAA AAAEAAAAAGFiY2QKUEsBAh4DCgAAAAAA9U4MVaykilgFAAAABQAAAAYAGAAAAAAAAQAAAKSBAAAA AGJpbmFyeVVUBQADHbP1YnV4CwABBAAAAAAEAAAAAFBLBQYAAAAAAQABAEwAAABFAAAAAAA=2.编写测试脚本
#! /bin/bash
cpath=$(cd `dirname $0`; pwd)
BinFile="$1"
BinShell="$2"
if [ "A$#" != "A2" ];then
echo -e "nn===> The Script $0 need two parameters.n"
echo -e "t$1: Binary filename."
echo -e "t$2: output script name."
echo -e "nn"
exit 200
fi
cd ${cpath};
cat > ${cpath}/${BinShell} << "EOOF"
#! /bin/bash
cpath=$(cd `dirname $0`; pwd)
PAYLOAD_LINE=$(awk '/^__BIN_BEGINS__/ { print NR + 1; exit 0; }' $0)
PAYLOAD_END=$(awk '/^__BIN_END__/ { print NR - 1; exit 0; }' $0)
head -n ${PAYLOAD_END} $0 | tail -n +${PAYLOAD_LINE} | base64 -d &> __MEISBINFILE__
echo -e "nn======================================================nn"
echo -e "tBinary File: __MEISBINFILENAME__ is export successed."
echo -e "texport path: ${cpath}/__MEISBINFILENAME__"
echo -e "nn======================================================nn"
EOOF
cat >> ${cpath}/${BinShell} << EOF
function BASE64
{
__BIN_BEGINS__
`base64 ${cpath}/${BinFile}`
__BIN_END__
}
EOF
# replace __MEISBINFILE__
sed -i "s#__MEISBINFILE__#${cpath}/${BinFile}#g" ${cpath}/${BinShell}
sed -i "s#__MEISBINFILENAME__#${BinFile}#g" ${cpath}/${BinShell}
3.执行脚本,生成新的脚本
]# bash test.sh
===> The Script test.sh need two parameters.$1: Binary filename.
$2: output script name.
#! /bin/bash
cpath=$(cd `dirname $0`; pwd)
PAYLOAD_LINE=$(awk '/^__BIN_BEGINS__/ { print NR + 1; exit 0; }' $0)
PAYLOAD_END=$(awk '/^__BIN_END__/ { print NR - 1; exit 0; }' $0)
head -n ${PAYLOAD_END} $0 | tail -n +${PAYLOAD_LINE} | base64 -d &> /root/binary.zip
echo -e "nn======================================================nn"
echo -e "tBinary File: binary.zip is export successed."
echo -e "texport path: ${cpath}/binary.zip"
echo -e "nn======================================================nn"
function BASE64
{
__BIN_BEGINS__
UEsDBAoAAAAAAPVODFWspIpYBQAAAAUAAAAGABwAYmluYXJ5VVQJAAMds/ViHbP1YnV4CwABBAAA
AAAEAAAAAGFiY2QKUEsBAh4DCgAAAAAA9U4MVaykilgFAAAABQAAAAYAGAAAAAAAAQAAAKSBAAAA
AGJpbmFyeVVUBQADHbP1YnV4CwABBAAAAAAEAAAAAFBLBQYAAAAAAQABAEwAAABFAAAAAAA=
__BIN_END__
} ]# bash binary.sh ====================================================== Binary File: binary.zip is export successed. export path: /root/binary.zip ======================================================