pdb如何配置dns
『壹』 請問如何將威盾phpCodeLock加密的php程序解密
偶發現PHPCodeLock這個工具,感覺不錯,尤其不需要像Zend那樣還需要載入特殊插件才能進行正常執行,於是研究了一番它的加密方式,當然同時也對其解密進行了嘗試,不敢獨享,與眾PHP愛好者分享一下。 下載威盾PHP加密專家,並運行,如果按如下圖所示的選項進行加密: 在Input目錄中,我放入一個簡單的php程序,其內容為: -------------------------------------------------------------------------- <?php phpinfo(); echo "test"; ?> -------------------------------------------------------------------------- 那麼,點擊加密後,將在Output目錄中生成同名的一個加密後的文件,其內容為: --------------------------------------------------------------------------- <?php $OOO0O0O00=__FILE__;$OOO000000=urldecode('%74%68%36%73%62%65%68%71%6c%61%34%63%6f%5f%73%61%64%66%70%6e%72');$OO00O0000=40;$OOO0000O0=$OOO000000{4}.$OOO000000{9}.$OOO000000{3}.$OOO000000{5};$OOO0000O0.=$OOO000000{2}.$OOO000000{10}.$OOO000000{13}.$OOO000000{16};$OOO0000O0.=$OOO0000O0{3}.$OOO000000{11}.$OOO000000{12}.$OOO0000O0{7}.$OOO000000{5};$O0O0000O0='OOO0000O0';eval(($$O0O0000O0('ZXZhbCgkT08wME8wME8wKTs=')));return;?> == --------------------------------------------------------------------------- 那麼簡單的兩行代碼,加密後居然變得如此恐怖,其實仔細研究後,不難發現它只是多次使用了以下一些php的特性進行多次編譯生成的這種復雜字元串: 1.php中變數的變數特性,比如$a="abc",那麼$$a將代表$abc,並且$a()將調用函數abc(),這種非常獨特的使用方法是該加密方法里重要的一個基礎,其他語言恐怕就不要想這樣弄了; 2.base64的編碼和解碼,多次使用,使一個字元串看上去無法理解,不過還原也不難; 3.字元串編碼後直接使用eval函數進行執行,即可和原始程序一模一樣了。 由此可見,這樣的加密文件是完全可逆,並且可以100%還原其源代碼的,經過我的實踐,已經完全反編譯還原了以下一些經過加密的程序並且完全正常運行: 1.通達OA2009最新版的數個重要加密文件; 2.UChome 的音樂盒插件最新版; 3.Discuz7論壇程序的Wap插件等。 如還有不明白的,可參看參考資料中的網址!
參考資料: http://hi..com/phpcodelock/blog/item/687e638e8c0974f3503d920a.html