Shell脚本的4种加密详细教程
Shell脚本的4种加密详细教程

Shell脚本的4种加密详细教程

轩灵
2017-05-21 / 0 评论 / 2,458 阅读 /
  • 文章转载请注明来源!
  • / 正在检测是否收录...
    温馨提示:
    本文最后更新于2022年03月19日,已超过768天没有更新,若内容或图片失效,请留言反馈。

    普及,shell脚本是什么?

    Shell Script,Shell脚本与Windows/Dos下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比Windows下的批处理更强大,比用其他编程程序编辑的程序效率更高,毕竟它使用了Linux/Unix下的命令。

    对于shell脚本加密,常见的方法有gzexe压缩,shc加密,upx压缩以及C语言转接

    本篇文章先介绍一下如何进行脚本加密

    首先将需要加密的脚本放在服务器的root文件夹内(我这里所说的是CentOS系统)

    1. gzexe压缩

      gzexe 脚本名(如 gzexe test.sh)

    原来的文件就加密了之后会在目录产生一个test.sh~的文件这个就是原来文件的备份

    1. upx压缩

    项目官网:https://upx.github.io/

    项目地址:https://github.com/upx/upx/releases

    这个算法我最近才发现,不过也应该是一个简单的加壳算法罢。需要去下载相应的执行程序。

    下载完解压,赋予执行权限。

    加密方法:

    ./upx 脚本名(如 ./upx test.sh)

    解密方法:

    ./upx -d 脚本名 (如./upx -d test.sh)

    1. shc加密

    shc官网:http://www.datsi.fi.upm.es/~frosal/

    安装方法:

    wget http://www.datsi.fi.upm.es/%7Efrosal/sources/shc-3.8.9.tgz
    tar vxf shc-3.8.9.tgz
    cd shc-3.8.9
    make test
    make strings
    make install

    发现报错的情况比较严重

    如果报错内容如下

    *** Installing shc and shc.1 on /usr/local
    *** ?Do you want to continue? y
    install -c -s shc /usr/local/bin/
    install -c -m 644 shc.1 /usr/local/man/man1/
    install: target `/usr/local/man/man1/' is not a directory: No such file or directory
    make: *** [install] Error 1

    请创建 mkdir -p /usr/local/man/man1/ ?,然后运行make install

    也可以直接无视,一般没什么影响,只是少了对应的帮助文档。

    常用参数:

    -e date (指定过期日期)

    -m message (指定过期提示的信息)?

    -f script_name(指定要编译的shell的路径及文件名)

    -r ? Relax security. (可以相同操作系统的不同系统中执行)

    -v ? Verbose compilation(编译的详细情况)

    加密方法:

    shc -v -f 脚本名(如shc -v -f test.sh)

    -v 是现实加密过程

    -f 后面跟需要加密的文件 ?

    abc.sh.x为二进制文件,赋予执行权限后,可直接执行。更改名字mv test.sh.x test.sh?

    abc.sh.x.c 是c源文件。基本没用,可以删除

    过期加密法

    另shc还提供了一种设定有效执行期限的方法,过期时间,如:

    shc -e 14/09/2016 -m ?-f test.sh

    选项“-e”指定过期时间,格式为“日/月/年”;选项“-m”指定过期后执行此shell程序的提示信息。

    如果在过期后执行,则会有如下提示:

    ./abc.sh.x ?

    ./abc.sh.x: has expired!(文件已经过期)

    使用以上方法要注意,需防止用户更改系统时间,可以通过在程序中加入自动更新系统时间的命令来解决此问题。

    测试都已通过,请放心使用


    1. C语言转接

    学习过Linux C语言的都应该知道最基础的命令

    printf 打印函数
    system 运行函数

    下面我就教大家最简单的转接脚本

    #include <string.h>
     main()
     {
       system("wget 真实脚本地址");
       return 0;
     }

    得到一个C文件test.c
    因为这个不能在linux中直接运行,所以需要进行编译

    yum install -y gcc (编译安装需要的gcc环境)
    gcc -o test test.c

    然后得到就是可以直接运行的脚本文件test

    更多问题请留言

    本文共 712 个字数,平均阅读时长 ≈ 2分钟
    108

    海报

    点点赞赏,手留余香

    给TA打赏
    如果觉得文章对您有用,快来赞赏一个吧!
      取消
      扫码打赏
      支付金额随意哦!

      评论 (0)

      语录
      取消