對shell指令碼進行加密

2022-08-27 16:36:11 字數 2452 閱讀 9214

用shell指令碼對系統進行自動化維護,簡單,便捷而且可移植性好.

但shell指令碼是可讀寫的,很有可能會洩露敏感資訊,如使用者名稱,密碼,路徑,ip等.

同樣,在shell指令碼執行時會也洩露敏感資訊.

請問如何不影響指令碼執行的前提下,對指令碼進行加密?

一、shc方法

shc是乙個加密shell指令碼的工具.它的作用是把shell指令碼轉換為乙個可執行的二進位制檔案,這就很好的解決了上述問題.

yum安裝:

yum -y install shc

編譯安裝:

wget 

tar xvfz shc-3.8.7.tgz

cd shc-3.8.7

make

驗證shc是否正確安裝

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

建立乙個示例shell指令碼

[root@martin shc-3.8.7]# vi random.sh

#!/bin/bash

read -p "how many random numbers do you want to generate?" max

for (( start = 1; start

<

= $max

; start++ ))

do echo -e $random

done

給指令碼增加可執行許可權

[root@martin shc-3.8.7]# chmod u+x random.sh

執行示例指令碼

[root@martin shc-3.8.7]# ./random.sh

how many random numbers do you want to generate?3

14235

9555

7671

使用shc加密shell指令碼

[root@martin shc-3.8.7]# ./shc -v -r -t -f random.sh

shc shll=bash

shc [-i]=-c

shc [-x]=exec '%s' "$@"

shc [-l]=

shc opts=

shc: cc random.sh.x.c -o random.sh.x

shc: strip random.sh.x

shc: chmod go-r random.sh.x

執行後會生成兩個檔案,script-name.x 和 script-name.x.c

script-name.x是加密後的可執行的二進位制檔案

script-name.x.c是生成script-name.x的原檔案(c語言)

[root@martin shc-3.8.7]# ll random.sh*

-rwxr-xr-x 1 root root 146 aug 2 10:26 random.sh

-rwx--x--x 1 root root 9424 aug 2 10:30 random.sh.x

-rw-r--r-- 1 root root 10080 aug 2 10:30 random.sh.x.c

執行加密後的指令碼

[root@martin shc-3.8.7]# ./random.sh.x 

how many random numbers do you want to generate?3

28955

21487

29513

還不完善,只能全路徑執行shc命令或者進入目錄內,加入全域性環境變數/etc/profile未生效

二、gzexe

它是使用系統自帶的gzexe程式,它不但加密,同時壓縮檔案

這種加密方式不是非常保險的方法,但是能夠滿足一般的加密用途,可以隱蔽指令碼中的密碼等資訊。

使用方法:

[root@martin home]# gzexe random.sh 

random.sh: 20.5%

[root@martin home]# ll random.sh*

-rwxr-xr-x 1 root root 953 aug 2 10:45 random.sh

-rwxr-xr-x 1 root root 146 aug 2 10:45 random.sh~

它會把原來沒有加密的檔案備份為 file.sh~ ,同時 file.sh 即被變成加密檔案

對Shell 指令碼加密的方法

用shell指令碼對系統進行自動化維護,簡單,便捷而且可移植性好.但shell指令碼是可讀寫的,很有可能會洩露敏感資訊,如使用者名稱,密碼,路徑,ip等.同樣,在shell指令碼執行程式設計客棧時會也洩露敏感資訊.shc是乙個加密shell指令碼的工具.它的作用是把shell指令碼轉換為乙個可執行的...

shell 指令碼加密

第一種方法 gzexe 這種加密方式不是非常保險的方法,但是能夠滿足一般的加密用途,可以隱蔽指令碼中的密碼等資訊。它是使用系統自帶的gzexe程式,它不但加密,同時壓縮檔案。使用方法 gzexe file.sh 它會把原來沒有加密的檔案備份為 file.sh 同時 file.sh 即被變成加密檔案 ...

shell指令碼加密

shc指令碼加密 wget 解壓安裝 tar xzf shc 3.8.9b.tgz cd shc 3.8.9b make make之後會在當前路徑下編譯生成乙個shc的可執行檔案。通過cp把它複製到任意乙個可執行檔案路徑裡,需要加密指令碼的時候,直接執行即可。shc v r f scripts.sh...