如何對PHP文件進行加密——ZendGuard加密與ZendLoader解密


轉載:http://blog.csdn.net/lamp_yang_3533/article/details/49563425
Zend Guard是目前市面上最成熟的PHP源碼加密產品。
經過本人搜集資料,親身測試后,總結了如何利用Zend Guard對PHP文件進行加密,以及如何利用Zend Loader對加密后的PHP文件進行解密。
 
我使用的是 Wampserver2.2,其中php的版本是5.3.10。(注意:這個里面自帶的php版本屬於TS版本,即Thread safety線程安全)
 
Zend Guard的安裝及破解
 
點擊下載  Zend Guard5.5.0,下載完成后,請自行傻瓜式安裝。

破解需要注意以下幾點:
  1、本KEY的有效時間為2010年7月10號,因此激活時,請將自己電腦的系統時間調整到這個時間之前,如:2009-01-01
  2、本KEY激活的為試用版,加密過的文件只有14天有效時間,因此在加密文件時,請將自己電腦的系統時間向后調整幾年,如:2020-01-01
  3、點擊下載授權文件  zend_guard授權文件.zip,解壓得到zend_guard.zl,即激活用的文件
  4、打開Zend Guard 5.5.0,[Help] -> [Register] -> [Search for a license file on my disk],選擇zend_guard.zl授權文件激活即可

如何使用Zend Guard進行加密?

 

  1、打開Zend Guard 5.5.0,[File]->[New]->[Zend Guard Project],新建項目。

            彈出如下的對話框:    

            

 

2、點擊 Next ,下一步。彈出如下對話框,選擇要進行加密的源文件或文件夾。

            本步驟是選擇要加密的文件,可以是單個文件[Add File]或整個文件夾[Add Folder],然后[Next]。

               (此處,我選擇的是對整個文件夾進行加密。即 D:\wamp\www\demo 里的所有文件進行加密。)

            

            
  3、接下來是選擇PHP的版本[與你web服務器上PHP的版本相對照],這里很重要,版本不對會出錯,[Finish]完成項目的創建。

            注意: 對於Zend Guard 5.5.0這個版本的加密軟件,最高只可支持5.3版本的PHP。如果您的PHP版本較高,請到Zend Guard官網下載對應的高版本加密軟件。

            (由於,我的PHP版本是PHP 5.3.10,故這里我選擇PHP 5.3,其他地方可以默認,直接點擊完成)

            

 

4、在Zend Guard左側的Guard Explorer中,可以看到你新建的項目了,鼠標選中項目名稱后,右鍵單擊[Encode Project],完成。

 

         

 

        如此,就實現了對PHP源碼的最簡單的加密。

        我們可以在產品的輸出目錄(D:\productDir)里,看到加密后的文件。

            

            

             

可以看出,產品輸出目錄里的PHP文件已被加密了。

  這種最簡單的加密方式,我們並沒有設置加密的有效期,也沒有設置許可證支持(即解密時,是否需要許可證文件),默認是永不過期,不需要解密許可文件。

如果要設置解密時的許可證文件,可以點擊 項目名稱(project_test) ,再點擊 項目主窗口中的 Overview 旁邊的 Security 選項卡,就可以進行更加安全的加密設置了。 如下圖:

    

                  

 

Zend Loader 解密

 
上面我們已經對PHP代碼進行了最簡單的加密(編碼),加密后生成的PHP源代碼,就不能再被web服務器上的PHP模塊解析了。
當我們將加密后的php文件放到web服務器上執行時,會顯示如下信息:
 
Zend Guard Run-time support missing!
One more more files on this web site were encoded by ZendGuard and the required run-time support is not installed orproperly configured.
......
 
原來,加密后的php代碼需要ZendGuardLoader模塊才能正常運行。
因為我的php版本是5.3.10的,所以我這里只提供了ZendGuardLoader-php-5.3-Windows,如果是其他版本的php,請自行百度。
點擊下載   ZendGuardLoader-php-5.3-Windows
下載后,解壓壓縮包,找到目錄里的 ZendLoader.dll 文件,將它復制到你的php目錄里的ext目錄(PHP的擴展庫目錄)下,再編輯PHP的配置文件php.ini,添加如下代碼:
 
[Zend.loader],
zend_loader.enable=1
zend_loader.disable_licensing=1
zend_loader.obfuscation_level_support=3
zend_loader.license_path=
zend_extension="d:\wamp\bin\php\php5.3.10\ext\ZendLoader.dll"
 
注:
zend_loader.enable                         表示是否啟用zend loader,1表示啟用,0表示禁用
zend_loader.disable_licensing        表示是否禁用許可證,1表示禁用,0表示不禁用    (由於上面我加密php文件的時候,沒有設置許可證支持,故解密時,禁用許可證)
zend_loader.obfuscation_level_support     表示代碼混淆級別
zend_loader.license_path                            指定許可證文件的路徑
zend_extension                                            指定zend loader 擴展文件 的路徑
 
配置完成后,重啟wampserver,如果您的php的版本是NTS(非線程安全的話),就可以正常執行加密后的PHP文件了。
但是,多數情況下的php版本都是TS(線程安全)的,比如,我這個wampserver集成環境中的php是php-5.3.10-ts,它是沒有辦法支持Zend Guard Loader擴展文件的。故還會報出上面的錯誤提示信息。
因為,Zend Guard Loader 只能支持 NTS版本的php,終極解決辦法是下載安裝 NTS 版本的php。
 
為了實現PHP源文件的 Zend 解密測試,可以下載安裝  php-5.3.29-nts-Win32-VC9-x86,再來配置 Zend Loader 擴展支持。
 
如何查看安裝好的PHP的版本及PHP是否已經成功支持Zend Loader?
        通過查看 phpinfo() 函數的輸出信息,利用 Ctrl + F 快速查找關鍵字Thread Safety 和 Zend Guard Loader。   
       如本人安裝好php-5.3.29-nts版本的php后,phpinfo()的輸出信息如下:
 
            
 
       可以看到,Thread Safety 對應的值為disabled,就說明該php的版本是 NTS (非線程安全)的,否則就是TS版本的。
       輸出信息中,還可以看到 Zend Guard Loader v3.3 字樣,說明 Zend Guard Loader 也安裝成功了。
       再往下面看,還可以查看 Zend Guard Loader 的配置信息,如下:
       
      到此,整個 Zend Guard 加密和  Zend Guard Loader 解密,就介紹完畢了。
 
      溫馨提示: 為了順利實現PHP代碼的zend加密和解密,建議使用PHP官網上主流的PHP的NTS版和Zend官網上對應的Zend Guard加密軟件、 Zend Guard Loader解密插件。
 
      相關附件:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM