使用php_screw加密PHP程式執行個體詳解

來源:互聯網
上載者:User

PHP_Screw是一款免費的針對PHP源碼進行加密的PHP的擴充,可以自訂加密種子檔案,加密後的檔案效率還不會下降,目前還沒有被破解。下面介紹一下安裝和使用方法

最新版本是php_screw_1.5
wget  http://nchc.dl.sourceforge.net/project/php-screw/php-screw/1.5/php_screw-1.5.tar.gz

官方網站只能下到源碼
從官方網站下載最新版本:
http://sourceforge.net/project/showfiles.php?group_id=52025

安裝步驟:
1. 下載源碼:
wget http://nchc.dl.sourceforge.net/project/php-screw/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支援(通過執行指令碼來檢查)。如果你使用的是PHP4.X版本,請下載php_screw_1.3版本

4. 進入源碼目錄
#cd php_screw_1.5
root@Server:~/php_screw-1.5# vim php_screw.h
#define PM9SCREW “tPM9SCREWt”
#define PM9SCREW_LEN 10
#define PM9SCREW “tLAURENCEt”
#define PM9SCREW_LEN 9


5. php_screw.h檔案,如果不改這個檔案,你加密的檔案內容開頭就會有 PM9SCREW ,你複製到google搜尋下就知道是用screw模組加密的,雖然目前網上沒發現解密演算法,但以後就不一定,這麼做就是為了隱藏密碼編譯演算法,可以讓別人不 知道你是用的什麼演算法加的密。改成COOL後10也要改成6.因為LAURENCE後字元長度是9發字元,如果你不對應加密後解密解析不了。
my_screw.h
root@Server:~/php_screw-1.5# 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位元,大了就會解密解析有問題。

6. phpize
#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

7. 配置
./configure
如果php安裝在非標準目錄,需要查看在phpize目錄下是否有php-config檔案,然後執行該目錄如下
./configure –with-php-config=/full/path/to/php-config

8. 安裝
make
make install

這個時候有時會出現一個問題:
‘zend_compiler_globals’ 沒有名為 ‘extended_info’ 的成員make: *** [php_screw.lo] 錯誤 1
解決方案:
需要修改php_screw.c (有兩個地方需要調整)
把CG(extended_info) = 1;
修改為:
CG(compiler_options) |= ZEND_COMPILE_EXTENDED_INFO;

9. php配置
在php.ini檔案裡面添加擴充
vim /usr/local/php/etc/php.ini
extension=php_screw.so
重啟apache,查看phpinfo()裡面應該有php_screw的相關資訊

10. 轉到源碼目錄下的 tools 目錄
#make
這裡是編譯php源碼到php加密檔案工具:screw

上述過程已經把php_screw 安裝完畢了,下面來看看如何進行加密:
1. 切換到你的php源碼目錄,比如你要加密phpinfo.php檔案則執行
#screw phpinfo.php

2. php_screw_1.5有一個缺點就是screw 加密工具一次只能執行一個檔案,如果你切換到你的php源碼目錄執行
#screw *
不會有任何檔案被加密,如果要加密上百個檔案,那正是災難
解決辦法如下 ,執行
find /data/php/source -name “*.php” -print|xargs -n1 screw //加密所有的.php檔案
find /data/php/source -name “*.screw” -print|xargs -n1 rm //刪除所有的.php源檔案的備份檔案
可以對/path/to/php/source目錄下的所有尾碼為php的檔案加密,包括子目錄下的。
這樣就基本做到的對php源碼的加密。如果只是個人的小程式源碼的加密,我想php_screw是一個不錯的選擇

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.