shell脚本加密工具shc使用详解

shell脚本加密工具shc

shc是一个加密shell脚本的工具.它的作用是把shell脚本转换为一个可执行的二进制文件.

应用场景

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

对于脚本中含有一些敏感信息的,通常我们都想做成二进制程序,不让用户看到源码,对于有这种需求的通常我们一般采用shc或者gzexe,我个人还是比较推荐shc。

shc 安装 和使用

yum -y install shc 或 apt install shc

我们随便写一个脚本

# cat test.sh
#!/bin/bash

echo "this is shc test"

用shc加密

shc -r -v -f test.sh

shc -r -f script-name 注意:要有-r选项, -f 后跟要加密的脚本名.

# ls -l
total 36
-rw-r--r-- 1 root root    37 12月 20 21:48 test.sh
-rwx--x--x 1 root root 11160 12月 20 21:48 test.sh.x
-rw-r--r-- 1 root root  9433 12月 20 21:48 test.sh.x.c

加密后会生成二个文件
test.sh 源文件
test.sh.x 加密后二进制文件
test.sh.x.c 脚本对应的C语言版本源码

执行一下加密后文件

# ./test.sh.x
this is shc test

shc解密

市面上面现在有对应的unshc解密程序,我们直接去github看看

https://github.com/yanncam/UnSHc/
支持x86 mips arm架构CPU
但对于我测试结果对于x86支持应该是最好的,作者自己维护的,其它的是第三方个人维护,兼容性不好。

 # ./unshc.sh /tmp/test.sh.x  -o test.txt
 _   _       _____ _   _
| | | |     /  ___| | | |
| | | |_ __ \ `--.| |_| | ___
| | | | '_ \ `--. \  _  |/ __|
| |_| | | | /\__/ / | | | (__
 \___/|_| |_\____/\_| |_/\___|

--- UnSHc - The shc decrypter.
--- Version: 0.8
------------------------------
UnSHc is used to decrypt script encrypted with SHc
Original idea from Luiz Octavio Duarte (LOD)
Updated and modernized by Yann CAM
- SHc   : [http://www.datsi.fi.upm.es/~frosal/]
- UnSHc : [https://www.asafety.fr/unshc-the-shc-decrypter/]
------------------------------

[*] Input file name to decrypt [/tmp/test.sh.x]
[+] Output file name specified [test.txt]
[+] ARC4 address call candidate : [0x400d06]
[*] Extracting each args address and size for the 14 arc4() calls with address [0x400d06]...
	[0] Working with var address at offset [0x602179] (0x2a bytes)
	[1] Working with var address at offset [0x602121] (0x1 bytes)
	[2] Working with var address at offset [0x602319] (0xa bytes)
	[3] Working with var address at offset [0x602170] (0x3 bytes)
	[4] Working with var address at offset [0x6020e0] (0xf bytes)
	[5] Working with var address at offset [0x602141] (0x1 bytes)
	[6] Working with var address at offset [0x602127] (0x16 bytes)
	[7] Working with var address at offset [0x602144] (0x16 bytes)
	[8] Working with var address at offset [0x60215d] (0x13 bytes)
	[9] Working with var address at offset [0x6021ad] (0x1 bytes)
	[10] Working with var address at offset [0x6021ae] (0x1 bytes)
	[11] Working with var address at offset [0x6020f9] (0x26 bytes)
	[12] Working with var address at offset [0x6021b3] (0x13 bytes)
	[13] Working with var address at offset [0x6021c8] (0x13 bytes)
[*] Extracting password...
	[+] PWD address found : [0x6021ec]
	[+] PWD size found : [0x100]
[*] Executing [/tmp/MYoKED] to decrypt [/tmp/test.sh.x]
[*] Retrieving initial source code in [test.txt]
[*] All done!
root@Develop:~/UnSHc-master/latest# cat test.txt
#!/bin/bash

echo "this is shc test"

可见直接解密出来源码,对于x86的这种,支持非常的好。 其原理 就是 头部增加4096字节乱码。并且 shc加密的脚本在运行时ps -ef可以看到shell的源码。 因此,shc其实不是真的很有用!

以上就是shell脚本加密工具shc的详细内容,更多关于shell脚本加密工具的资料请关注我们其它相关文章!

(0)

相关推荐

  • 使用shc工具加密shell脚本详解

    Shc可以用来对shell脚本进行加密,可以将shell脚本转换为一个可执行的二进制文件.经过shc对shell脚本进行加密后,会同时生成两种个新的文件,一个是加密后的可执行的二进制文件(文件名以.x结束),另一个是C语言的原文件(文件名以.x.c结束).   下面就说明一下shc的安装,参数,以及使用示例: 下载安装: (官网下载地址: http://www.datsi.fi.upm.es/~frosal/sources/) 复制代码 代码如下: # wget http://www.datsi

  • asp木马代码解密的随机加密webshell

    随机加密webshell,解密还不错,应当免杀 加密源码 复制代码 代码如下: <%@ LANGUAGE = VBScript.Encode %> <%#@~^3A4CAA==@#@& jdDhl/k'r1v2FX!ZFE~,PP,~P,@#@&sHC:'r随机加密 J~P~~@#@&jkDnj"SxE4YY2lJzAhS 4l^0+MRmK:r~P,P~P,P~@#@&ZWazDbotDxEbUn木马随机加密器 rP~P~~,P~P,~P,

  • 对Shell 脚本加密的方法

    用shell脚本对系统进行自动化维护,简单,便捷而且可移植性好. 但shell脚本是可读写的,很有可能会泄露敏感信息,如用户名,密码,路径,IP等. 同样,在shell脚本运行时会也泄露敏感信息. shc是一个加密shell脚本的工具.它的作用是把shell脚本转换为一个可执行的二进制文件. 这就很好的解决了上述问题. shc 安装 yum -y install shc 使用方法: shc -r -f script-name 注意:要有-r选项, -f 后跟要加密的脚本名. 运行后会生成两个文件

  • Powershell实现加密解密文本文件方法实例

    适用于Powershell3.0及以后版本. 假设你需要给文件加密,下面教你如何给自己的文件加密: $Path = "$env:temp\secret.txt" $Secret = 'Hello World!' $Passphrase = 'Some secret key' $key = [Byte[]]($Passphrase.PadRight(24).Substring(0,24).ToCharArray()) $Secret | ConvertTo-SecureString -A

  • CentOS下对shell脚本加密的二种方法

    第一种方法(gzexe): 这种加密方式不是非常保险的方法,但是能够满足一般的加密用途,可以隐蔽脚本中的密码等信息. 它是使用系统自带的gzexe程序,它不但加密,同时压缩文件. 使用方法: 复制代码 代码如下: gzexe file.sh 它会把原来没有加密的文件备份为 file.sh~ ,同时 file.sh 即被变成加密文件: 第二种方法(shc): 使用 shc 对 Linux shell 脚本加密. shc是一个专业的加密shell脚本的工具.它的作用是把shell脚本转换为一个可执行

  • shell脚本加密工具shc使用详解

    shell脚本加密工具shc shc是一个加密shell脚本的工具.它的作用是把shell脚本转换为一个可执行的二进制文件. 应用场景 用shell脚本对系统进行自动化维护,简单,便捷而且可移植性好.但shell脚本是可读写的,很有可能会泄露敏感信息,如用户名,密码,路径,IP等. 对于脚本中含有一些敏感信息的,通常我们都想做成二进制程序,不让用户看到源码,对于有这种需求的通常我们一般采用shc或者gzexe,我个人还是比较推荐shc. shc 安装 和使用 yum -y install shc

  • Linux 在Shell脚本中使用函数实例详解

    Linux 在Shell脚本中使用函数实例详解 Shell的函数 Shell程序也支持函数.函数能完成一特定的功能,可以重复调用这个函数. 函数格式如下: 函数名() { 函数体 } 函数调用方式: 函数名 参数列表 实例:编写一函数add求两个数的和,这两个数用位置参数传入,最后输出结果. root@ubuntu:/home/study# vi test3 #!/bin/bash add(){ a=$1; b=$2; z=`expr $a + $b`; echo "The sum is $z&

  • 利用Python+Java调用Shell脚本时的死锁陷阱详解

    前言 最近有一项需求,要定时判断任务执行条件是否满足并触发 Spark 任务,平时编写 Spark 任务时都是封装为一个 Jar 包,然后采用 Shell 脚本形式传入所需参数执行,考虑到本次判断条件逻辑复杂,只用 Shell 脚本完成不利于开发测试,所以调研使用了 Python 和 Java 分别调用 Spark 脚本的方法. 使用版本为 Python 3.6.4 及 JDK 8 Python 主要使用 subprocess 库.Python 的 API 变动比较频繁,在 3.5 之后新增了

  • shell脚本之sed详细用法详解

    目录 sed的作用 sed使用方法介绍 命令行格式 举例说明 对文件进行增.删.改.查操作 增加文件内容 对文件进行搜索替换操作 其他命令 其他选项 sed结合正则使用 补充扩展总结 总结 sed的作用 sed是Stream Editor(流编辑器)的缩写,简称流编辑器:用来处理文件的 sed是一行一行读取文件内容并按照要求进行处理,把处理后的结果输出到屏幕 首先sed读取文件中的一行内容,把其保存在一个临时缓存区中(也称为模式空间) 然后根据需求处理临时缓冲区中的行,完成后把该行发送到屏幕上

  • linux shell脚本学习xargs命令使用详解

    xargs是给命令传递参数的一个过滤器,也是组合多个命令的一个工具.它把一个数据流分割为一些足够小的块,以方便过滤器和命令进行处理.通常情况下,xargs从管道或者stdin中读取数据,但是它也能够从文件的输出中读取数据.xargs的默认命令是echo,这意味着通过管道传递给xargs的输入将会包含换行和空白,不过通过xargs的处理,换行和空白将被空格取代. xargs 是一个强有力的命令,它能够捕获一个命令的输出,然后传递给另外一个命令,下面是一些如何有效使用xargs 的实用例子. 1.

  • 如何通过shell脚本自动生成vue文件详解

    前言 最近在写nuxt项目时候每次新建页面都要去新建然后引入各种需要的依赖很是麻烦,所以想写一个脚本自动生成文件 省去手动新建 现写下实现方法 给大家参考 Mac下可直接运行 Windows下需要安装Cygwin类软件且配置环境变量后运行 使用方法 1.需要修改package.json 的scrpts 加一条create 或者自定义名字 主要是为了我们在terminal中输入指令后运行对应的脚本 package.json 2.在项目根目录新建一个template文件夹放自己的模板文件 文件内容根

  • golang构建工具Makefile使用详解

    目录 正文 正文 可能是因为编译太简单了,golang 并没有一个官方的构建工具(类似于 java 的 maven 和 gradle之类的),但是除了编译,我们可能还需要下载依赖,运行测试,甚至像 easyjson,protobuf,thrift 这样的工具下载和代码生成,如果没有构建工具,这些工作就会非常麻烦 为了解决这个问题,之前写过一个 everything.sh 的脚本,把所有的操作都封装在这个脚本里面,只需要执行类似于 sh everything.sh dependency 的命令就可

  • Java异或技操作给任意的文件加密原理及使用详解

    异或简单介绍:异或是一种基于二进制的位运算,用符号XOR或者 ^ 表示,其运算法则是对运算符两侧数的每一个二进制位,同值取0,异值取1. 简单理解就是不进位加法,如1+1=0,,0+0=0,1+0=1. 需求描述 在信息化时代对数据进行加密是一个很重要的主题,在做项目的过程中,我也实现了一个比较复杂的加密算法,但是由于涉及到的技术是保密的,所以在这里我实现一个比较简单的版本,利用文件的输入输出流和异或操作进行任意文件的加密,关于解密算法,很简单,自己思考下就能解决. 数学原理 该加密算法利用的是

随机推荐