程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> Zend Guard使用指南及問題處理

Zend Guard使用指南及問題處理

編輯:PHP綜合

Zend Guard是目前市面上最成熟的PHP源碼加密產品了。

剛好需要對自己的產品進行加密,折騰了一晚上,終於搞定,將碰到的問題及解決方法記錄下來,方便日後需要,也可以幫助其他人。
我使用的是Wampserver,其中php的版本是5.3.10。

Zend Guard的安裝及破解

點擊下載Zend Guard5.5.0,下載完成後,請自行傻瓜化安裝

這裡需要注意以下幾點

  1、本KEY的有效時間為2010年7月10號,因此激活時請將自己電腦系統時間調整至這個時間以前
  2、本KEY激活的為試用版,加密過的文件只有14天有效時間,因此在加密文件時,請將自己電腦系統時間向後調整N年,比如2099-12-31
  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進行加密

  1、打開Zend Guard 5.5.0,[File]->[New]->[Zend Guard Project],新建項目
  2、在彈窗的窗口,前3項隨便填吧,最後一項是加密後文件的保存位置,然後[Next];
  3、本步驟是選擇要加密的文件,可以為單個文件[Add File]和整個文件夾[Add Folder],然後[Next]
  4、接下來是選擇PHP版本[與你服務器上PHP的版本相對照],這裡很重要,版本不對會出錯,[Finish]完成項目的創建
  5、在Zend Guard左側的Guard Explorer中,可以看到你新建的項目了,鼠標選中後,右鍵[Encode Project],完成

Zend Guard Run-time support missing問題的解決

雖然現在可以成功加密php源碼了,但是當執行腳本的時候,會發現不能正常執行,會顯示如下信息

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.ini文件,添加一段代碼(如):

復制代碼 代碼如下:
[Zend.loader]
zend_loader.enable=1
zend_loader.disable_licensing=1
zend_loader.obfuscation_level_support=3
zend_loader.license_path=
zend_extension="你的PHP安裝目錄\ext\ZendLoader.dll"

  重啟wampserver
  運氣好的話,會發現可以成長執行了,運氣不好的話,還是會發現以上錯誤。
  這裡我們已經安裝了zend guard loader了,為什麼還是無法執行zend加密後的php腳本呢?
  通過查看輸出phpinfo()信息,我發現有這麼幾行信息:

復制代碼 代碼如下:
  PHP Extension 20090626
  Zend Extension 220090626
  Zend Extension Build API220090626,TS,VC9

  請注意,其中的TS是thread safety的簡寫(即線程安全)

  一時也找不出原因,索性直接打開zend guard官網進行搜索,然後就解決了。

  原來,zend guard loader只支持NTS的版本,意味著如果你的php版本是TS的話,就沒法使用zend guard loader了,如果你想查看自己的php是ts還是nts的,只需要輸出phpinfo,然後搜索下:Thread Safety,disabled對應nts版本,否則為ts。

  因此,終極解決辦法就是,下載個php NTS版本進行安裝即可。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved