Zend Guard使用指南及問題處理
Zend Guard是目前市面上最成熟的PHP源碼加密產(chǎn)品了。
剛好需要對自己的產(chǎn)品進(jìn)行加密,折騰了一晚上,終于搞定,將碰到的問題及解決方法記錄下來,方便日后需要,也可以幫助其他人。
我使用的是Wampserver,其中php的版本是5.3.10。
Zend Guard的安裝及破解
點(diǎn)擊下載Zend Guard5.5.0,下載完成后,請自行傻瓜化安裝
這里需要注意以下幾點(diǎn):
1、本KEY的有效時間為2010年7月10號,因此激活時請將自己電腦系統(tǒng)時間調(diào)整至這個時間以前
2、本KEY激活的為試用版,加密過的文件只有14天有效時間,因此在加密文件時,請將自己電腦系統(tǒng)時間向后調(diào)整N年,比如2099-12-31
3、下載授權(quán)文件[zend_guard授權(quán)文件.zip],解壓得到zend_guard.zl,即為激活用的文件
4、打開Zend Guard 5.5.0,[Help]->[Register]->[Search for a license file on my disk],選擇文件激活即可。
如何使用Zend Guard進(jìn)行加密?
1、打開Zend Guard 5.5.0,[File]->[New]->[Zend Guard Project],新建項(xiàng)目
2、在彈窗的窗口,前3項(xiàng)隨便填吧,最后一項(xiàng)是加密后文件的保存位置,然后[Next];
3、本步驟是選擇要加密的文件,可以為單個文件[Add File]和整個文件夾[Add Folder],然后[Next]
4、接下來是選擇PHP版本[與你服務(wù)器上PHP的版本相對照],這里很重要,版本不對會出錯,[Finish]完成項(xiàng)目的創(chuàng)建
5、在Zend Guard左側(cè)的Guard Explorer中,可以看到你新建的項(xiàng)目了,鼠標(biāo)選中后,右鍵[Encode Project],完成
Zend Guard Run-time support missing問題的解決
雖然現(xiàn)在可以成功加密php源碼了,但是當(dāng)執(zhí)行腳本的時候,會發(fā)現(xiàn)不能正常執(zhí)行,會顯示如下信息
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模塊才能正常運(yùn)行。
因?yàn)槲业膒hp版本是5.3.10的,所以我這里只提供了ZendGuardLoader-php-5.3-Windows,如果是其他版本的php,請自行百度。
點(diǎn)擊下載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
運(yùn)氣好的話,會發(fā)現(xiàn)可以成長執(zhí)行了,運(yùn)氣不好的話,還是會發(fā)現(xiàn)以上錯誤。
這里我們已經(jīng)安裝了zend guard loader了,為什么還是無法執(zhí)行zend加密后的php腳本呢?
通過查看輸出phpinfo()信息,我發(fā)現(xiàn)有這么幾行信息:
PHP Extension 20090626
Zend Extension 220090626
Zend Extension Build API220090626,TS,VC9
請注意,其中的TS是thread safety的簡寫(即線程安全)
一時也找不出原因,索性直接打開zend guard官網(wǎng)進(jìn)行搜索,然后就解決了。
原來,zend guard loader只支持NTS的版本,意味著如果你的php版本是TS的話,就沒法使用zend guard loader了,如果你想查看自己的php是ts還是nts的,只需要輸出phpinfo,然后搜索下:Thread Safety,disabled對應(yīng)nts版本,否則為ts。
因此,終極解決辦法就是,下載個php NTS版本進(jìn)行安裝即可。
相關(guān)文章
解析獲取優(yōu)酷視頻真實(shí)下載地址的PHP源代碼
本篇文章是對獲取優(yōu)酷視頻真實(shí)下載地址的PHP源代碼進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06PHP進(jìn)階學(xué)習(xí)之垃圾回收機(jī)制詳解
這篇文章主要介紹了PHP進(jìn)階學(xué)習(xí)之垃圾回收機(jī)制,詳細(xì)分析了php垃圾回收機(jī)制的概念、原理及對性能的影響,需要的朋友可以參考下2019-06-06PHP實(shí)現(xiàn)網(wǎng)站應(yīng)用微信登錄功能詳解
這篇文章主要介紹了PHP實(shí)現(xiàn)網(wǎng)站應(yīng)用微信登錄功能,結(jié)合實(shí)例形式詳細(xì)分析了php實(shí)現(xiàn)微信授權(quán)登錄功能的具體操作步驟與相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-04-04PHP 將圖片按創(chuàng)建時間進(jìn)行分類存儲的實(shí)現(xiàn)代碼
代碼功能:使用PHP巧妙將圖片按創(chuàng)建時間進(jìn)行分類存儲 圖片文件屬性須取消只讀屬性,否則無法刪除2010-01-01