使用shc工具加密shell指令碼詳解_linux shell

來源:互聯網
上載者:User

Shc可以用來對shell指令碼進行加密,可以將shell指令碼轉換為一個可執行檔二進位檔案。經過shc對shell指令碼進行加密後,會同時產生兩種個新的檔案,一個是加密後的可執行檔二進位檔案(檔案名稱以.x結束),另一個是C語言的原檔案(檔案名稱以.x.c結束)。
 
下面就說明一下shc的安裝,參數,以及使用樣本:
下載安裝:
(官網下載地址: http://www.datsi.fi.upm.es/~frosal/sources/)

複製代碼 代碼如下:

# wget http://www.datsi.fi.upm.es/~frosal/sources/shc-3.8.7.tgz
# cd shc-3.8.7
# make
# make install

(僅用make就可以完成安裝,運行shc時要指出絕對路徑;用make install,將shc安裝到/usr/local/bin下,可以直接運行)
 
常用參數:
複製代碼 代碼如下:

-e date  
  Expiration date in dd/mm/yyyy format [none](指定到期日期)

-m message
  message to display  upon  expiration  ["Please  contact your provider"](指定到期提示的資訊)
 
-f script_name
  File name of the script to compile(指定要編譯的shell的路徑及檔案名稱)
 
-r   Relax security.
   Make  a  redistributable  binary  which executes  on different systems running the same operat-ing system.(可以相同作業系統的不同系統中執行)
 
-v   Verbose compilation(編譯的詳細情況)


使用樣本:
複製代碼 代碼如下:

[root@centos54 tmp]# /usr/local/src/shc-3.8.7/shc -e 20/10/2010 -m "lianxi aaa@163.com" -v -r -f ./ex.sh

-e:指定到期時間為2010年10月20日
-m:到期後列印出的資訊;
-v: verbose
-r: 可在相同作業系統的不同主機上執行
-f: 指定源shell
 
方法:

複製代碼 代碼如下:

shc -r -f script-name

注意:要有-r選項, -f 後跟要加密的指令碼名.
運行後會產生兩個檔案,script-name.x 和 script-name.x.c
script-name.x是加密後的可執行檔二進位檔案.
./script-name.x 即可運行.
script-name.x.c是產生script-name.x的原檔案(c語言)
 
說明:

經我測試,相同在作業系統,shc後的可執行二進位檔案直接可以移植運行,但不同作業系統可能會出現問題,如我將源shell在CentOS5.4上加密後移到redhat as5u4上不能運行,出現“Floating point exception”錯誤提示,但移到另一台CentOS5.4上直接運行沒問題。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.