使用SHC加密bash脚本程序 本文共有2464个字,关键词: SHC代表shell script compiler,即shell脚本编译器。通过SHC编译过的脚本程序对普通用户而言是不读的,因此如果你想保护你的代码(例如含有密钥),则可以考虑SHC;然而有些人可以通过反向编译的方式破解SHC加密过的脚本。 下面我们开始介绍: 一、使用SHC加密bash脚本程序 1.下载并编译SHC 源码https://github.com/neurobin/shc ``` # wget http://www.datsi.fi.upm.es/~frosal/sources/shc-3.8.7.tgz # tar xvfz shc-3.8.7.tgz # cd shc-3.8.7 # make ``` 你可以在SHC官方网站找到其最新源代码。 现在我们验证SHC是否正确安装: $ ./shc -v shc parse(-f): No source file specified shc Usage: shc [-e date] [-m addr] [-i iopt] [-x cmnd] [-l lopt] [-rvDTCAh] -f script 2.建立一个测试bash脚本 ``` #!/bin/bash echo -n "How many random numbers do you want to generate? " read max for (( start = 1; start <= $max; start++ )) do echo -e $RANDOM done ``` 3.使用SHC加密bash脚本 $ ./shc -f random.sh 之后我们可以看到多出两个文件: $ ll random.sh* -rwxr-xr-x 1 lesca lesca 153 2012-05-16 06:34 random.sh* -rwx--x--x 1 lesca lesca 10512 2012-05-16 06:34 random.sh.x* -rw-r--r-- 1 lesca lesca 10145 2012-05-16 06:34 random.sh.x.c random.sh 是原始的未加密的bash脚本 random.sh.x 是加密的二进制格式的bash脚本 random.sh.x.c 是random.sh的C源代码。该文件是从random.sh转换而来的,SHC就是通过将bash脚本转为C语言再编译之进行加密的。 $ file random.sh* random.sh: Bourne-Again shell script text executable random.sh.x: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, stripped random.sh.x.c: ASCII C program text 4.执行加密的bash脚本 $ ./random.sh.x ``` How many random numbers do you want to generate? 3 15146 20741 17825 ``` 二、SHC的其他功能 1.设置脚本使用期限 我们可以通过SHC指定程序的有效期,过期后程序将失效,任何尝试运行的用户将收到错误消息。SHC使用-e dd/mm/yyyy来开启该功能: $ ./shc -e 31/12/2011 -f random.sh 如果程序过期了,将会得到以下消息: $ ./random.sh.x ./random.sh.x: has expired! Please contact your provider 结合-m "message"选项,我们可以指定发生错误时输出的消息: $ ./shc -e 31/12/2011 -m "Contact admin@lesca.me for new version of this script" -f random.sh $ ./random.sh.x ./random.sh.x: has expired! Contact admin@lesca.me for new version of this script 2.创建可重复发布的加密脚本 -r: 允许该脚本在同操作系统的不同硬件平台上运行 -T: 允许让ltrace, strace那样的程序追踪脚本运行 -v: 输出详细信息 通常-r与-T一起使用,用于创建可重复发布且可追踪的加密脚本,例如: $ ./shc -v -r -T -f random.sh shc shll=bash shc [-i]=-c shc [-x]=exec '%s' "$@" shc [-l]= shc opts= shc: cc random.sh.x.c -o random.sh.x shc: strip random.sh.x shc: chmod go-r random.sh.x $ ./random.sh.x How many random numbers do you want to generate? 3 1311 19637 14891 Reference: [1] How to Encrypt Your Bash Shell Script on Linux Using SHC 本文出自 Lesca技术宅,转载时请注明出处 × yihong (๑>ڡ<)☆谢谢老板~ 2元 5元 10元 50元 100元 任意金额 2元 使用微信扫描二维码完成支付 版权声明:本文为作者原创,如需转载须联系作者本人同意,未经作者本人同意不得擅自转载。 码农心得 2024-04-10 评论 1485 次浏览