gzexe 助shell指令碼加密 01

wuweilong發表於2014-12-30

gzexe shell指令碼加密 01

一、  簡介

很多時候我們的指令碼會涉及到一些私密的資訊,例如:使用者名稱,密碼,或者其它重要資訊的時候,我們使用一些加密的手段來遮蔽這些資訊,確保系統的安全已經指令碼的可流傳性,通常情況下我們只需要透過系統自帶的gzexe這個工具就夠了。

二、         實驗測試開始:


  1. 2.1 編寫一個用於測試的指令碼
    [root@woo ~]# vi woo.sh
    #! /bin/ksh
    echo 'PrudentWoo'' '`date +%Y-%m-%d' '%T`
    uptime
    2.2 賦予可執行許可權,並執行
    [root@woo ~]# chmod +x woo.sh
    [root@woo ~]# ./woo.sh
    PrudentWoo 2014-12-30 22:13:27
     22:13:27 up 10 days, 23:03,  3 users,  load average: 0.00, 0.01, 0.05


    2.3 執行gzexe加密操作
    [root@woo ~]# gzexe woo.sh
    woo.sh:  11.5%
    [root@woo ~]# ll woo.s*
    -rwxr-xr-x 1 root root 888 Dec 30 22:15 woo.sh
    -rwxr-xr-x 1 root root  61 Dec 30 22:11 woo.sh~
    [root@woo ~]#

  2. 2.4 加密後的檔案內容
    [root@woo ~]# strings  woo.sh
    #!/bin/sh
    skip=44
    tab='   '
    nl='
    IFS=" $tab$nl"
    umask=`umask`
    umask 77
    gztmpdir=
    trap 'res=$?
      test -n "$gztmpdir" && rm -fr "$gztmpdir"
      (exit $res); exit $res
    ' 0 1 2 3 5 10 13 15
    if type mktemp >/dev/null 2>&1; then
      gztmpdir=`mktemp -dt`
    else
      gztmpdir=/tmp/gztmp$$; mkdir $gztmpdir
    fi || { (exit 127); exit 127; }
    gztmp=$gztmpdir/$0
    case $0 in
    -* | */*'
    ') mkdir -p "$gztmp" && rm -r "$gztmp";;
    */*) gztmp=$gztmpdir/`basename "$0"`;;
    esac || { (exit 127); exit 127; }
    case `echo X | tail -n +1 2>/dev/null` in
    X) tail_n=-n;;
    *) tail_n=;;
    esac
    if tail $tail_n +$skip "$gztmp"; then
      umask $umask
      chmod 700 "$gztmp"
      (sleep 5; rm -fr "$gztmpdir") 2>/dev/null &
      "$gztmp" ${1+"$@"}; res=$?
    else
      echo >&2 "Cannot decompress $0"
      (exit 127); res=127
    fi; exit $res
    woo.sh
    (*MI
    WWWPOHI,IU

  3. 2.5 再次執行加密後的檔案,輸出結果一樣
    [root@woo ~]# ./woo.sh
    PrudentWoo 2014-12-30 22:17:22
     22:17:22 up 10 days, 23:06,  3 users,  load average: 0.00, 0.01, 0.05
    [root@woo ~]#

  4. 2.6 執行解密操作:
    [root@woo ~]# gzexe -d woo.sh
    [root@woo ~]# cat woo.sh
    #! /bin/ksh
    echo 'PrudentWoo'' '`date +%Y-%m-%d' '%T`
    uptime
    [root@woo ~]#

    2.7 再次執行確認,加密解密都是可行的:
    [root@woo ~]# ./woo.sh
    PrudentWoo 2014-12-30 22:19:50
     22:19:50 up 10 days, 23:09,  3 users,  load average: 0.00, 0.01, 0.05
    [root@woo ~]#


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/20674423/viewspace-1385551/,如需轉載,請註明出處,否則將追究法律責任。

相關文章