shell加密

如何保护自己编写的shell程序
要保护自己编写的shell脚本程序,方法有很多,最简单的方法有两种:1、加密 2、设定过期时间,下面以shc工具为例说明:

一、下载安装shc工具
shc是一个加密shell脚本的工具.它的作用是把shell脚本转换为一个可执行的二进制文件.
 
# wget http://www.datsi.fi.upm.es/~frosal/sources/shc-3.8.7.tgz

安装:
# tar zxvf shc-3.8.7.gz

# cd shc-3.8.7

# mkdir /usr/local/man/man1/ (install时会把man文件放入该目录,如果该目录不存在需提前建好) 这一步需要root权限

# make test
# make
# make test
# make strings
# make install   这一步需要root权限

二、加密方法:
shc -r -f script-name   注意:要有-r选项, -f 后跟要加密的脚本名.
运行后会生成两个文件,script-name.x 和 script-name.x.c
script-name.x是加密后的可执行的二进制文件.
./script-name 即可运行.
script-name.x.c是生成script-name.x的原文件(c语言)

# shc -v -f test.sh

-v是verbose模式, 输出更详细编译日志;

-f 指定脚本的名称.

# ll test*

-rwxr-xr-x   1 oracle oinstall    1178 Aug 18 10:00 test.sh
-rwx--x--x   1 oracle oinstall    8984 Aug 18 18:01 test.sh.x
-rw-r--r--   1 oracle oinstall   14820 Aug 18 18:01 test.sh.x.c

# file test.sh.x

test.sh.x: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.5, dynamically linked (uses shared libs), stripped

可以看到生成了动态链接可执行二进制文件test.sh.x和C源文件testup.sh.x.c, 注意生成的二进制文件因为是动态链接形式, 所以在其它平台上不能运行.

生成静态链接的二进制可执行文件

可以通过下面的方法生成一个静态链接的二进制可执行文件:

$ CFLAGS=-static shc -r -f test.sh

$ file testup.sh.x

三. 通过sch加密后的脚本文件很安全吗?

一般来说是安全的, 不过可以使用gdb和其它的调试工具获得最初的源代码. 如果需要更加安全的方法, 可以考虑使用wzshSDK. 另外shc还可以设置脚本的运行期限和自定义返回信息:

$ shc -e 03/31/2007 -m "the mysql backup scrīpt is now out of date." -f test.sh

-e表示脚本将在2007年3月31日前失效, 并根据-m定义的信息返回给终端用户.

题外:

如果你仅仅是看不见内容就行了的话,不妨用
gzexe a.sh

原来的 a.sh 就被存为 a.sh~,新的 a.sh 是乱码,但是可以用 sh 的方式运行

时间: 2024-10-26 05:37:51

shell加密的相关文章

shell加密工具shc的安装和使用

shell加密工具shc的安装和使用 1)工具说明  shell脚本是可读写的, 很有可能会泄露敏感信息, 如用户名/密码/路径/IP等. 同样在shell脚本运行时会也泄露敏感信息. shc是一个加密shell脚本的工具, 它的作用是把shell脚本转换为一个可执行的二进制文件. 这就很好的解决了上述问题. 2)下载安装  下载: http://www.datsi.fi.upm.es/~frosal/sources/shc-3.8.6.tgz(非官方地址) 安装:  # mkdir -p /h

Shell 加密之 shc 漏洞

近期工作一直编Shell 脚本给客户使用,难免会碰到一些敏感信息不想让客户知道,于是采用Shc 脚本加密方式编译出二进制文件提交至客户使用,发现SHC加密会出现至命漏洞.本文章针对该漏洞方法进行描述: SHC 版本:shc-3.8.3 shell 脚本代码量:300行+ shell 脚本逻辑处理较为复杂 SHC 编译参数:shc  -v -T -r -f  (具体含义可在网上查,这里不再说明) 由于shell 脚本代码量较多,且逻辑处理稍复杂,每次执行的时候在ps 进程里面总会一段时间内能看到s

MySQL之登陆密码加密认证脚本

一.登陆密码加密认证脚本应用场景 日常操作,经常明文指定了MySQL密码来登录MySQL服务,在登录成功之后就会抛出下面的警告:[root@git-server ~]# mysql -uroot -p'wujianwei' Warning: Using a password on the command line interface can be insecure. Welcome to the MySQL monitor. Commands end with ; or \g. Your MyS

Linux 远程登录——(九)

Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE /* Style Definitions */ table.MsoNormalTable {mso-style-name:普通表格; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-parent:""; ms

用户管理useadd、userdel、id、finger、usermod、passw

用户类别: 管理员 uid 0 普通用户 uid 1-65535 用户组类别: 管理员组 普通组 系统组 一般组 私有组:创建用户时没有为用户指定所属组,系统会自动为其创一个与其用户名相同的组 基本组:用户的默认组 附加组/额外组:默认组以外的其他组 [whatis可以查看passwd有几个章节的man文档,第5个章节的配置文件格式的说明是man 5 passwd] account:password:UID:GID基本组:GECOS用户注释信息:directory家目录:shell用户默认she

Hadoop 2.2.0 第一步

Hadoop 2.2.0分布式环境搭建.根据网上和视频上的内容总结. 环境为3台虚拟机,centOS6.5  32位. _______________________________ hostname | ip   | hadoop1   | 192.168.4.109 | hadoop2   | 192.168.4.110 | hadoop3   | 192.168.4.111 | _______________________________ 1.设置静态ip 修改ip设置完之后重启网卡,执

SecureCRT 远程连接Linux系统工具

简介 SecureCRT是一款支持SSH(SSH1和SSH2)的终端仿真程序,简单地说是Windows下登录UNIX或Linux服务器主机的软件. SecureCRT支持SSH,同时支持Telnet和rlogin协议.SecureCRT是一款用于连接运行包括Windows.UNIX和VMS的理想工具.通过使用内含的VCP命令行程序可以进行加密文件的传输.有流行CRTTelnet客户机的所有特点,包括:自动注册.对不同主机保持不同的特性.打印功能.颜色设置.可变屏幕尺寸.用户定义的键位图和优良的V

liunx 基础命令

1. 显示当前目录所有的文件和目录信息 > ls       //list > ls  XX目录     //查看指定目录下边的文件信息 2. 显示当前文件目录位置 > pwd 3. 目录之间切换 > cd  目录名字 > cd  ..   切换到上级目录 4. 切换到完全命令模式 > init 3      进入命令模式 > init 5      进入可视化操作界面 5. 用户切换到超级管理员 > su - root    //$是普通用户    #是超

学习资料整理

1.Sql导入数据方式:(1)软件选择导入,分隔符类型,直接导入 (2)写入代码导入 2.Hadoop下载安装:官网下载安装 3.HDFS HDFS的可靠性:创建了多份数据备份,放置在了其他计算机节点中,读取速度也很快. 结构:NameNode(元数据 内存)和DataNodes(文件内容 磁盘) 运行机制:(1)一个名字节点和多个数据节点 (2)故障检测 计算机网络 1 电路交换与分组交换的区别是什么?优劣对比? 答:先介绍基本概念: 电路交换 概念:必须经过建立连接(占用通信资源)--->通