如何保护自己编写的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 的方式运行

 

shell脚本加密的更多相关文章

  1. shell 脚本加密

    日常编写shell脚本时会写一些账号和密码写入脚本内,但是不希望泄露账号密码,所以对shell脚本进行加密变成可执行文件. 主要使用 shc 对 Linux shell 脚本加密,shc是一个专业的加 ...

  2. shell脚本加密方式

    --作者:飞翔的小胖猪 --创建时间:2021年5月17日 --修改时间:2021年5月17日 说明 shell作为Linux操作系统中原生的语言环境,由于其简单.便捷.可以移植等特性常被运维人员作为 ...

  3. 转载:Shell 脚本加密 - 略有修改

    shc是一个加密shell脚本的工具.它的作用是把shell脚本转换为一个可执行的二进制文件. shc 安装 yum -y install shc 如果yum不能安装,请移步官方下载rpm包 http ...

  4. Linux之Shell 脚本加密工具-shc

    Much effort, much prosperity. 为什么要加密Shell脚本呢?当然是为了安全! 可能脚本里面涉及到密码之类的就需要进行加密了 一.下载安装shc工具 要保护自己编写的she ...

  5. linxu下的shell脚本加密,shell生成二机制可执行文件

    再安全的加密也抵不过逆向,斗智斗勇吧,持续加密持续破解 1.简单的加密:gzexe file.sh 2.使用shc加密:下载地址:http://www.datsi.fi.upm.es/~frosal/ ...

  6. shell脚本 加密备份MySQL数据库

    1.加密备份为.bak文件(实际只是个.zip文件) #!/bin/bash # $:IP地址 # $:用户名 # $:数据库密码 # $:数据库名 # $:加密密码 # $:备份文件名 mysqld ...

  7. shell脚本基础知识

    虽然现在能在Linux系统下生存,但是自觉效率太低,和高手有很大的差距. 这就是关于Linux的知识太过匮乏,有很多事情知道该怎么做,但是就是没法在Linux下实现,为了提升工作效率,必须要接触Lin ...

  8. 对shell脚本进行加密

    用shell脚本对系统进行自动化维护,简单,便捷而且可移植性好.但shell脚本是可读写的,很有可能会泄露敏感信息,如用户名,密码,路径,IP等.同样,在shell脚本运行时会也泄露敏感信息.请问如何 ...

  9. 优化对称加密的 shell 脚本

    前言 之前一篇文章<shell 脚本实现文件对称加密>中,讲述了如何用 shell 脚本实现对称加密. 之后写管理密码脚本时,发觉该脚本的处理速度非常慢,而其原因就在 shell 的处理命 ...

随机推荐

  1. Android开发手记(11) 滑动条SeekBar

    安卓滑动条的操作特别简单,通过getProgress()可以获得SeekBar的位置,通过setProgress(int progress)可以设置SeekBar的位置.要想动态获取用户对SeekBa ...

  2. Python基础练习

    近日,因工作需要要学习Python.为了不在语言细节中无法自拔,我按照网上广为流传的<程序员技术练级攻略>中python部分的学习计划,做了三个简单的练习,算是对python有了初步的了解 ...

  3. SQL 关于有单引号数据更新的问题

    要把sql语句中包含有单引号的符号加入到数据库中的做法 )),''','123.com') 很简单就是加入id=''123''            0'0就可以写成'0''0'

  4. 设置Cacti图形标题能显示中文

    1.查看系统是否带有中文字体包 # ls /usr/share/fonts/chinese 如没有则安装 # yum -y install fonts-chinese   2.设置cacti使用的rr ...

  5. LINQ动态查询类--[DynamicLinqExpressions]

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.L ...

  6. CURL请求接口

    private function  http_curl($url,$data=null){ //1.初始化,创建一个新cURL资源                 $ch = curl_init(); ...

  7. winform中相对路径和绝对路径的获取

    例如: Path.GetFullPath(Path.Combin(@"C:\a\b\c","..\b.text")); ..代表上级目录 .代表当前目录 结果: ...

  8. Axure自动幻灯片制作

    1.打开axure7,开始. 2.拖一个占位符组件到布局上(当然也可以是矩形.图片之类的),大小270*170,作为幻灯片的第一张片子,双击写上“第一张片子”. 3.拖一个矩形,设置形状为椭圆,调整大 ...

  9. apache2.2 虚拟主机配置详解

    一.修改httpd.conf 打开appserv的安装目录,找到httpd.conf文件,分别去掉下面两行文字前面的#号. #LoadModule vhost_alias_module modules ...

  10. NGINX关于配置PATHINFO

    最近在群里发现有很多小白不会配置pathinfo现贴出来配置代码照着配置就可以了     1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 2 ...