当前位置: 首页 >> Shell >> 【加密】sch 助shell脚本加密02 >> 正文

【加密】sch 助shell脚本加密02

8年前 (2016-06-07)     作者:Jiaozn     分类:Shell     阅读次数:5054     评论(2)    

sch 助shell脚本加密 02

一、  简介

SHC(shell script compiler),即shell脚本编译器。通过SHC编译过的脚本对普通用户而言是不可读的,因此如果你想让你的代码实现加密功能,让其有效的屏蔽一些敏感信息,这个时候可以考虑使用SHC;它通常情况下是不太容易被破解的,但是还是有些人可以通过反编译SHC的方法来实现破解加密过的脚本。

二、  实验测试开始

2.1 下载并编译SHC

[python] view plain copy print?

[root@woo ~]# wget http://www.datsi.fi.upm.es/~frosal/sources/shc-3.8.3.tgz  

[root@woo ~]# ll shc-3.8.3.tgz  

-rw-r--r-- 1 root root 19874 Dec 31 20:40 shc-3.8.3.tgz  

[root@woo ~]# tar -zxvf shc-3.8.3.tgz  

shc-3.8.3/CHANGES  

shc-3.8.3/Copying  

shc-3.8.3/Makefile  

shc-3.8.3/match  

shc-3.8.3/pru.sh  

shc-3.8.3/shc.1  

shc-3.8.3/shc.c  

shc-3.8.3/shc.html  

shc-3.8.3/shc.README  

shc-3.8.3/test.bash  

shc-3.8.3/test.csh  

[root@woo ~]# cd shc-3.8.3  

[root@woo shc-3.8.3]# make && make install  

*** ?Do you want to probe shc with a test script?  

*** Please try... make test  

[root@woo shc-3.8.3]#  

2.2 编译完成之后,我们切换到oracle用户下编辑一个脚本

[sql] view plain copy print?

[root@woo ~]# su - oracle  

[oracle@woo ~]$ vi sqlscript.sql  

#!/bin/sh  

sqlplus -S system/oracle << EOF  

set pagesize 0 linesize 80 feedback off  

select 'The database ' || instance_name ||  

        ' has been running since '||  

to_char(startup_time, 'HH24:MI MM/DD/YYYY')  

from v\$instance;  

select 'There are ' || count(status) ||  

        ' data files with a status of ' || status  

from dba_data_files  

group by status  

order by status;  

exit;  

EOF  

2.3 执行加密前的脚本

[python] view plain copy print?

[oracle@woo ~]$ ./sqlscript.sql  

The database woo has been running since 18:17 12/23/2014  

There are 4 data files with a status of AVAILABLE  

2.4 对脚本进行加密操作,会在原来的基础上多出两个文件

[python] view plain copy print?

[root@woo shc-3.8.3]# shc -r -f /home/oracle/sqlscript.sql  

[oracle@woo ~]$ ll sqlscript*  

-rwxr-xr-x 1 oracle oinstall 365 Dec 31 18:55 sqlscript.sql --运行文件  

-rwx--x--x 1 root root 12048 Dec 31 22:00 sqlscript.sql.x –加密后的二进制文件  

-rw-r--r-- 1 root root 11416 Dec 31 22:00 sqlscript.sql.x.c --x源文件(c语言)  

2.5 执行加密后的文件,输出结果和加密前是一样的

[python] view plain copy print?在CODE上查看代码片派生到我的代码片

[oracle@woo ~]$ ./sqlscript.sql.x  

The database woo has been running since 18:17 12/23/2014  

There are 4 data files with a status of AVAILABLE  

2.6 SHC可选参数

[python] view plain copy print?在CODE上查看代码片派生到我的代码片

[root@woo shc-3.8.3]# ./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  

[root@woo shc-3.8.3]#  

[root@woo shc-3.8.3]# ./shc --help  

./shc: invalid option -- '-'  

shc parse: Unknown option  

shc Version 3.8.3, Generic Script Compiler  

shc Copyright (c) 1994-2005 Francisco Rosales <frosal@fi.upm.es>  

shc Usage: shc [-e date] [-m addr] [-i iopt] [-x cmnd] [-l lopt] [-rvDTCAh] -f script  

#设置过期时间  

-e %s  Expiration date in dd/mm/yyyy format [none]  

       #过期信息提示  

-m %s  Message to display upon expiration ["Please contact your provider"]  

       #加密脚本名称  

    -f %s  File name of the script to compile  

    -i %s  Inline option for the shell interpreter i.e: -e  

    -x %s  eXec command, as a printf format i.e: exec('%s',@ARGV);  

-l %s  Last shell option i.e: --  

        #宽松的安全性,可以想通操作系统的不同机器中运行  

    -r     Relax security. Make a redistributable binary  

    -v     Verbose compilation  

    -D     Switch ON debug exec calls [OFF]  

-T     Allow binary to be traceable [no]  

         #显示许可证并退出  

    -C     Display license and exit  

-A     Display abstract and exit  

          #显示帮助和退出  

    -h     Display help and exit  

    Environment variables used:  

    Name    Default  Usage  

    CC      cc       C compiler command  

    CFLAGS  <none>   C compiler flags  

    Please consult the shc(1) man page.  


除非注明,发表在“Jiaozn的博客”的文章『【加密】sch 助shell脚本加密02』版权归Jiaozn所有。 转载请注明出处为“本文转载于『Jiaozn的博客』原地址https://www.jiaozn.com/reed/304.html
0

评论

发表评论   

昵称*

E-mail*(建议输入,以便收到博主回复的提示邮件)

网站

分享:

支付宝

微信