加密 Shell Script 原始碼

Shell Script 的好處是簡單方便, 可以直接將 Linux 指令放到 Shell Script, 但 Shell Script 其中一個問題是, 如果 Shell Script 裡面有一些敏感的信息, 例如密碼, 裡面的內容可以被其他使用者看到。shc 是一支將 Shell Script 用 RC4 加密, 並制作成 binary 檔的工具, 本篇文章會示範用 shc 將 Shell Script 加密的方法。

首先從 shc 官網下載 shc, 目前最新新版本是 3.8.9b:

# wget http://www.datsi.fi.upm.es/~frosal/sources/shc-3.8.9b.tgz

解壓 shc 原始碼及編譯安裝:

# tar zxvf shc-3.8.9b.tgz
# cd shc-3.8.9b
# make
# cp shc /usr/local/bin/

現在可以用 shc 指令將 Shell Script 加密, 例如建立一支簡單的 Hello World! Shell Script:

例如以上程式儲存成 test.sh, 給它可執行權限:

# chmod +x test.sh

這時用 shc 將 test.sh 加密並變成 binary 檔:

# shc -f test.sh

執行以上指令後, 目錄下會建立 2 個檔案: test.sh.x.c 及 test.sh.x, 其中 test.sh.x.c 是 shc 從 Shell Script 建立的 C 原始碼並進行加密; 而 test.sh.x 則是可執行的 binary 檔, 可以直接執行:

# ./test.sh.x

當然上面的檔案名稱可以更改, 例如:

# mv test.sh.x test

這樣其他使用者執行時, 便不會察覺到是 Shell Script, 而且看不到 Shell Script 的程式碼。

shc 還有很多功能, 例如自訂 binary 可執行的時限等, 詳細用法可以檢查 shc 的使用手冊。




Leave a Reply