php程序如何加密(php_screw)

最新版本是php_screw_1.5

wget  http://nchc.dl.sourceforge.net/project/php-screw/php-screw/1.5/php_screw-1.5.tar.gz 

官方站點只能下到源碼

1.從官方站點下載最新版本:

http://sourceforge.net/project/showfiles.php?group_id=52025

以下按我下載的php_screw_1.5爲例: php_screw_1.5.tar.gz

2.解壓縮:tar zxvf php_screw_1.5.tar.gz

3.通過README.en文件可以看到該版本軟件包要求PHP5.x 環境,並要求zlib支持(通過執行腳本<? gzopen(); ?>來檢查)。如果你使用的是PHP4.X版本,請下載php_screw_1.3版本

4.進入源碼目錄

#cd php_screw_1.5

php_screw.h
# vim php_screw.h
#define PM9SCREW        “\tPM9SCREW\t”
#define PM9SCREW_LEN     10

#define PM9SCREW        “\tCOOL\t”
#define PM9SCREW_LEN     6

php_screw.h文件,如果不改這個文件,你加密的文件內容開頭就會有 PM9SCREW ,你複製到google搜索下就知道是用screw模塊加密的,雖然目前網上沒發現解密算法,但以後就不一定,這麼做就是爲了隱藏加密算法,可以讓別人不知道你是用的什麼算法加的密。改成COOL後10也要改成6.因爲COOL後字符長度是6發字符,如果你不對應加密後解密解析不了。
my_screw.h
# vim my_screw.h
short pm9screw_mycryptkey[] = {
  11152, 368, 192, 1281, 62
};

short pm9screw_mycryptkey[] = {
  12852, 968, 192, 1281, 62, 269
};

自定義加密種子文件,這個可能是該程序的亮點,用你喜歡的文本編輯器打開源碼目錄下的my_screw.h,修改文件裏面的數組文件,可以用數字添加該數組的長度。數組越長,加密越可靠。而且該數組的長度不會影響加密以及你的PHP程序執行的速度.測試發現不要大於5位數,大了就會解密解析有問題。

#phpize

Configuring for:
PHP Api Version:         20041225
Zend Module Api No:      20060613
Zend Extension Api No:   220060519

如果你的系統提示沒有該命令就需要安裝apt-get install php5-dev Centos 估計是yum -y install php5-devel ,如果還是提示上述命令不存在,可能是由於你的php沒有安裝在標準目錄下,請到php安裝目錄的bin文件夾下尋找,確定是否有該文件。然後回到php_scre_1.5目錄下,執行

#/full/path/to/phpize

要成功執行phpize,需要有autoconf 和M4軟件包。成功執行後,源碼文件夾下出現configure文件

如果沒有裝錯誤如下:phpize command not found  

解決:centOS: yum -y install php-devel

        :RHEL :up2date -i php-devel
 

執行:

./configure

如果php安裝在非標準目錄,需要查看在phpize目錄下是否有php-config文件,然後執行該目錄如下

./configure –with-php-config=/full/path/to/php-config

5.

#make

6.正常執行完make後,你可以在源碼目錄的modules文件夾下找到php_screw.so文件。將該文件copy到phpinfo()裏面extension_dir所指的目錄下,然後在php.ini文件裏面添加

cp php_screw.so /usr/lib/php5/20060613+lfs

vim /etc/php5/apache2/php.ini

extension=php_screw.so

重啓apache,查看phpinfo()裏面應該有php_screw的相關信息

7.轉到源碼目錄下的tools文件夾,執行

#make

這裏是編譯php源碼到php加密文件工具:screw

上面的php_screw.so其實是解析加密後的php源碼

編譯screw過程中會用到my_screw.h文件,所以請保證編譯php_screw.so和screw時使用的my_screw.h文件一致。

make完成後會在tools目錄下產生screw可執行文件,你可以把它放到任何你喜歡的path目錄,如/usr/local/bin,/usr/bin等,確保你鍵入screw命令時可以找到

8.切換到你的php源碼目錄,比如你要加密phpinfo.php文件則執行

#screw phpinfo.php

則產生phpinfo.php這個加密文件,原文件copy爲phpinfo.php.screw.打開phoinfo.php文件可以看到一堆亂碼。通過web訪問phpinfo.php以及phpinfo.php.screw則顯示同樣內容

9. php_screw_1.5有一個缺點就是screw 加密工具一次只能執行一個文件,如果你切換到你的php源碼目錄執行

#screw *

不會有任何文件被加密,如果要加密上百個文件,那正是災難

解決辦法如下 ,執行

find /path/to/php/source  -name “*.php” -print|xargs -n1 screw //加密所有的.php文件
find  /path/to/php/source  -name “*.screw” -print/xargs -n1 rm //刪除所有的.php源文件的備份文件

可以對/path/to/php/source目錄下的所有後綴爲php的文件加密,包括子目錄下的。

這樣就基本做到的對php源碼的加密。如果只是個人的小程序源碼的加密,我想php_screw是一個不錯的選擇

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章