天天看點

使用shc加密shell

    shell程式中經常會有不能讓人看到的密碼,找到個工具叫shc可以編譯加密shell腳本。

1. 安裝shc

  1. yum install shc -y 

需要安裝rpmforge才能yum安裝shc,安裝方式見:http://wiki.centos.org/zh/AdditionalResources/Repositories/RPMForge?highlight=%28rpmforge%29

2. shc使用

a. 選項

  1. shc [ -e date ] [ -m message ] [ -i iopt ] [ -x cmnd ] [ -l lopt ] [ -ACDhTv ] -f script 

說明:

-e date:設定過期日期,格式:dd/mm/yyyy

-m message:指定過期時提示的日期

-f scriptname:指定要編譯的腳本名

-r:可以在相同版本系統的不同機器上執行

-v:顯示編譯的詳細資訊

b. 使用

  1. shc -r -f scriptname 

執行指令後會生成檔案:scriptname.x.c scriptname.x

scriptname.x.c:生成scriptname.x二進制檔案的源檔案,該檔案為C語言的源代碼,可以打開檔案檢視,裡面就是linux下C的代碼

scriptname.x:二進制可執行檔案

c. 指定過期時間和資訊

  1. shc -r -e dd/mm/yyyy -m "message" -f scriptname 

生成的程式将在dd/mm/yyyy日期過期,那時候執行時會提示:message

d. 動态庫

檢視

  1. file scriptname.x  
  2. scriptname.bash.x: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped 

注意:dynamically linked(uses shared libs)使用的是動态連結庫,不能跨平台使用

可以使用ldd檢視具體使用的庫

  1. ldd scriptname.x 

 如:

  1. ldd mysql_backup.bash.x  
  2.     linux-vdso.so.1 =>  (0x00007fff019ff000)  
  3.     libc.so.6 => /lib64/libc.so.6 (0x0000003a3c200000)  
  4.     /lib64/ld-linux-x86-64.so.2 (0x0000003a3ba00000) 

 e. 靜态庫

  1. CFLAGS=... shc -r -f scriptname