这个 bash 脚本是如何加密的?

#!/bin/sh
skip=14
tmpdir=`/bin/mktemp -d ${TMPDIR:-/tmp}/gzexe.XXXXXXXXXX` || exit 1
prog="${tmpdir}/`echo \"$0\" | sed 's|^.*/||'`"
if /usr/bin/tail -n +$skip "$0" | "/bin"/gzip -cd > "$prog"; then
  /bin/chmod 700 "$prog"
  trap '/bin/rm -rf $tmpdir; exit $res' EXIT
  "$prog" ${1+"$@"}; res=$?
else
  echo "Cannot decompress $0"
  /bin/rm -rf $tmpdir
  exit 1
fi; exit $res
‹Ÿ!•Stool.sh
阅读 5.2k
1 个回答

这个script的作用就是:

  • 获取当前文件除去前$skip行后的内容
  • 对上面获取到的内容进行gzip解压
  • 使用传入参数调用解压(解密)后生成的文件

这个script不用于加密,而是用于调用加密后的文件

以下是分析:

  • prog="${tmpdir}/`echo \"$0\" | sed 's|^.*/||'`" 生成一个临时文件
  • /usr/bin/tail -n +$skip "$0" | "/bin"/gzip -cd > "$prog"; 将当前script文件除去前$skip行剩下的内容通过gzip解压到上面生成的临时文件中
  • /bin/chmod 700 "$prog" 将临时文件设置为可执行
  • "$prog" ${1+"$@"}; res=$? 使用传入当前script的参数调用上面生成的临时文件

至于如何使用这个script,很简单,使用gzip将你需要加密的可以执行的文件(比如script)进行压缩,将压缩后的内容复制粘贴到你提供的这个script后面,然后合理设置skip变量就好了。
也可以使用一句命令:gzip -c 需要加密的script.sh >> 你提供的script.sh(前提是你先把原先加密的内容删掉了)

不明白的再问吧,如果有用记得点采纳,这点字码了半个小时。。。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进