php加密代碼破解
php-beast是高效且易用的PHP代碼保護擴展,適用於Windows和Linux操作系統。在安裝和使用過程中,有幾點需要注意,包括處理加密和解密的問題。以下將詳細介紹在不同操作系統下安裝和使用php-beast的方法,以及如何解決常見解密問題。
對於Windows版本的加密處理,推薦從GitHub下載對應的.dll文件,根據你的PHP版本和是否為線程安全選擇相應的文件。將.dll文件放置在指定的擴展目錄,並在php.ini配置文件中添加擴展配置,如`extension=php_beast_x86_nts.dll`。注意,秘鑰通常需要手動修改以確保安全性和兼容性,通常使用二進制編輯工具對特定位置進行修改即可。
Linux版本的加密處理相對復雜,首先需要在編譯前修改秘鑰。對於新版本,秘鑰的修改通常在`header.c`文件中進行,同時需要調整`aes_algo_lib.c`和`des_algo_handler.c`中的內容。編譯步驟包括下載源碼、修改配置文件、進行編譯和安裝。在安裝過程中可能會遇到找不到`php-config`的錯誤,此時需要通過`find`命令查找配置文件的位置,並確保正確指定`php-config`路徑。安裝完成後,需要將擴展添加到php配置文件中,並重啟PHP服務進行測試。
在解密方面,對於修改過密鑰的文件,解密難度較高,通常需要暴力破解或分析文件頭部信息以判斷加密類型。對於使用默認密鑰加密的文件,解密相對簡單,通常可以手動使用解密工具或在線工具進行解密。這些工具提供了方便的解密界面,用戶僅需選擇文件並執行解密操作即可。
總的來說,php-beast提供了強大的加密功能,為PHP代碼提供了保護,但同時也需要用戶在安裝和使用過程中注意秘鑰的管理和版本兼容性問題。對於解密問題,根據加密方式的不同,採用的方法也有所區別,但大部分情況下,通過適當的工具和方法,仍可實現文件的解密。
❷ 如何破解Zend及ionCube加密的php文件
如何破解Zend及ionCube加密的php文件
PHP加密的種類:
我們知道很多商業php程序為了保護源碼或者設置限制會採取源碼加密,
常見的一般有Zend、微盾(威盾)、ionCube。
其中微盾是不需要伺服器組件支持的,所以也很好破,網上文章很多,大家搜搜就可以得知。
而Zend和ionCube是需要組件支持的,所以在破解上難度會非常大,或者說根本無法破解。
1、Zend Guard
簡單介紹一下Zend Guard:
Zend Guard是PHP市場上第一個保護PHP知識產權的代碼加密解決方案和電子許可管理方案。
Zend Guard通過原始代碼加密以及限制分發沒有授權的軟體來實現軟體的最大化收益。
Zend Guard加密後的PHP源程序需要環境中安裝Zend Optimizer才可以運行,
同時Zend Optimizer在加密的過程中也可以實現優化代碼的作用。
2、ionCube
IonCube是用來加密PHP的工具。ionCube Encoder可以把PHP源代碼轉換成ByteCode。
進行加密授權處理後的PHP代碼就不在開源了,必須使用ionCube loader才可以執行加密過的PHP代碼。
PHP本身沒有帶有ionCube loader模塊, 必須到ionCube網站下載。
ionCube loader是免費的,但是Encoder的價格就比較昂貴。
如何知道文件的加密方式呢?
目前我也只看過zend加密方式,文件頭部會有「Zend」。
zend加密截圖
解密方式:
1、Ioncubed filesv6][v7]及Zend Guard files [v5]加密文件(非通過特殊處理的,特殊處理過的基本沒戲)
本文並不贊成破解,下文提供工具方法僅限測試使用,韋鯤鵬不承擔任何責任。
首先需要保證自己的windows機器上安裝了Microsoft Visual C++ 2008及2010版本。
這里提供2008+2010的x86+x64版本整合下載地址 http://115.com/file/cl31yn62(轉載,不保證無毒)
安裝好後DeZender.DeIoncuber軟體就派上用場了~ 這里提供的版本是29.11.2011
首先將下載到的DeZender.DeIoncuber壓縮包解壓到路徑中沒有空格的地址中。
如D:/DeZender_DeIoncuber/ 中,解壓出來後會看到4個文件夾及7個文件。
其中有README說明文檔,大家也可以看一看。
其中有兩種解碼方式,一種是_RM 另外一種是_NWS. 有些文件兩種均可破解,有些只可一種。
首先講下如何破解單個php加密文件。
將需要破解的文件拖到DECODE_NWS.bat或者DECODE_RM.bat上即可。
如生效,則會在php文件所在目錄生成(同名+.nws/.rm+.su.txt)的文件。
如果要破解多個文件,則將所有要破解的文件復制到程序目錄下的_decode目錄(如D:/DeZender_DeIoncuber/_decode/),
然後運行DECODE_RM.bat或者DECODE_NWS.bat,隨後就會在_decoded_nws/rm 的目錄下生成破解後的文件。
DeZender_DeIoncuber下載地址:http://115.com/file/cl3ybw5e
2、在線解密:http://www.showmycode.com/,不支持批量解密,需要輸入驗證碼。(本人嘗試,這個解密不是很好)
3、下載dezend:http://www.old.necenzurat.com/dezend/
支持php4,php5,免費程序,不支持批量解密,但是可以用批處理,支持捐贈,
作者說:「the money will be used on alcohol, cigars and whores」。
轉載僅供參考,版權屬於原作者。祝你愉快,滿意請採納哦
❸ 這個PHP的加密代碼怎樣破解,這個是什麼原碼來的
可以用黑刀Dezender來試試,我不擔保可以解出來的哦, 從黑刀Dezender4.3版之後,將著力對混淆函數以及自定義函數的解密進行應對。 大家下載壓縮包並解壓後,會發現有一個「config.ini」的文件,這就是混淆函數庫啦! 打開後,可自行編輯其中的內容,當然,也可以通過黑刀Dezender的升級程序直接下載官方最新的混淆函數庫文件。這個混淆函數庫就相當於是一個字典文件了,在保證格式不變的情況下,大家可以在【黑刀部落】下載《黑刀超級字典生成器》生成字典來掛入主程序進行解密,正確步驟為:先備份、改名自己的config.ini文件,生成的字典文件在第一行加入「[OBFUSCATE_NAME]」,將字典文件改名為config.ini,開始解密。 同時,黑刀部落網站的「項目中心」欄目也開設了用戶提交自己已知程序被混淆的函數列表,這樣的話,就能讓Dezender變得越來越強了。再也不怕混淆函數了。呵呵。 什麼是混淆函數?混淆函數,是從Zend Guard 4.0之後新增的一項功能,能把PHP文件中的所有函數名都進行混淆,混淆後變成以「_OBFUSCATE_」開頭的一串「亂碼」,這種加密方式感覺有點類似Md5,因為函數名已經不是原來的樣子了,所以解密出來的PHP文件是不能正常執行的。黑刀Dezender在4.3版之後,新增加了掛入混淆函數庫參與解密的功能,而混淆函數庫,就像是一個包含了已知函數名的字典,利用這個字典,來與被混淆了的函數名(就是所謂的「亂碼」)進行比對,如果比對結果相同,則解密出來的文件,基本上就可以恢復到加密前的樣子了。如果混淆函數庫中沒有包含該PHP文件中使用的函數名,那麼解密結果依然還是會存在「亂碼」的。掌握了這個原理,我們就可以去想辦法解決問題了。 方式有以下幾種: 第一,使用黑刀超級字典生成器產生一個字典,字典的內容可以自己把握,修改字典文件名為「config.ini」,然後打開字典文件,在第一行插入「[OBFUSCATE_NAME]」標記(注意,方括弧也是需要的,也就是引號內的內容都要加進去),將字典文件拷貝入黑刀Dezender主程序所在目錄,同時注意備份原有的config.ini文件。這種辦法費時費力,也要看運氣,不過卻是最實際的解決辦法。 第二,常看別人源代碼的朋友,可以把自己已經掌握了的混淆函數的真實函數名提交到我的網站上來。操作步驟:進入網站首頁,進入項目中心的「DeZender混淆函數庫更新表」,提交。我會定期查看大家提交上來的數據,加入到官方的混淆函數庫中,不斷的增強和完善官方混淆函數庫,大家可以利用黑刀Dezender的自動升級功能對其進行升級!
❹ 我是php新手,請問swoole怎麼解密呢
恩,這是一款有擴展的加密,其實swoole解密很簡單,要解密它,就先了解一下它是怎麼工作的。
它的執行步驟是:①加密時獲取PHP整個文件的代碼 → ②對代碼進行加密 → ③通過擴展對代碼進行解密 → ④對解密代碼進行opcode處理 → ⑤執行PHP代碼。
所以解密就需要對他的擴展dll(windows下用)或so(Linux下用)文件分析。現在說說怎麼解密它,解密方式有二種:
方法A:針對PHP執行的時候進行破解
方法B:針對PHP解密的時候進行破解
先說說方法A,「針對PHP執行的時候進行破解」,也就是在上面的第⑤個步驟才開始處理,但是此時,PHP代碼是經過opcode處理過的,而且破解方法較煩瑣,需要處理很多語法,所破解出來的代碼,和文件的原代碼也有所不一樣(可能有10%的地方不同,不過這個不同,也有很多人喜歡,因為它會把原代碼中復雜的語法破解成很多條簡單的語法),既然是破解,就要100%一樣,所以這個方法我個人認為並不是好方法。
所以用方法B:「針對PHP解密的時候進行破解」,也就是在上面的第③個步驟就進行處理,此時解密出來的和用戶原代碼完全一樣,具體破解方法是不會公布的了,人家是一款商業軟體。有興趣的可以自己去學習分析,不過可以提一下,關鍵點在於從它的擴展文件(dll或so)分析出它的加密函數和加密密碼,然後用這個對密文進行解密(解密前要排除掉前面的一些特徵代碼)。
❺ PHP模板文件被加密了,base64_encode加密的好像,求破解成正常PHP代碼。
用了兩次自定函數的加密, 再就是部分字元轉換成 16進制和8進制
解來的結果是
class SubPages{ private $each_disNums;
private $nums;
private $current_page;
private $sub_pages;
private $pageNums;
private $page_array = array();
private $subPage_link;
private $subPage_type;
private $wjt_htm; function __construct($each_disNums,$nums,$current_page,$sub_pages,$subPage_link,$subPage_type,$weijingtai="0"){ global $wjtpagehz; global $pagenums; if($weijingtai=="1"){ $this->wjt_htm=$wjtpagehz; } $this->each_disNums=intval($each_disNums); $this->nums=intval($nums); if(!$current_page){ $this->current_page=1; }else{ $this->current_page=intval($current_page); } $this->sub_pages=intval($sub_pages); $this->pageNums=ceil($nums/$each_disNums)>$pagenums ? $pagenums : ceil($nums/$each_disNums); $this->subPage_link=$subPage_link; $this->show_SubPages($subPage_type); } function __destruct(){ unset($each_disNums); unset($nums); unset($current_page); unset($sub_pages); unset($pageNums); unset($page_array); unset($subPage_link); unset($subPage_type); } function show_SubPages($subPage_type){ if($subPage_type == 1){ $this->subPageCss1(); }elseif ($subPage_type == 2){ $this->subPageCss2(); } } function initArray(){ for($i=0;$i<$this->sub_pages;$i++){ $this->page_array[$i]=$i; } return $this->page_array; } function construct_num_Page(){ if($this->pageNums < $this->sub_pages){ $current_array=array(); for($i=0;$i<$this->pageNums;$i++){ $current_array[$i]=$i+1; } }else{ $current_array=$this->initArray(); if($this->current_page <= 3){ for($i=0;$i<count($current_array);$i++){ $current_array[$i]=$i+1; } }elseif ($this->current_page <= $this->pageNums && $this->current_page > $this->pageNums - $this->sub_pages + 1 ){ for($i=0;$i<count($current_array);$i++){ $current_array[$i]=($this->pageNums)-($this->sub_pages)+1+$i; } }else{ for($i=0;$i<count($current_array);$i++){ $current_array[$i]=$this->current_page-2+$i; } } } return $current_array; } function subPageCss1(){ $subPageCss1Str="";
$subPageCss1Str.="當前第".$this->current_page."頁 / 共".$this->pageNums."頁 "; if($this->current_page > 1){ $firstPageUrl=$this->subPage_link."1".$this->wjt_htm; $prewPageUrl=$this->subPage_link.($this->current_page-1).$this->wjt_htm;
$subPageCss1Str.="<a href='$prewPageUrl' class='previous-page'>上一頁</a> "; }else {
$subPageCss1Str.="<a class='no-previous'>上一頁</a> "; } if($this->current_page < $this->pageNums){ $lastPageUrl=$this->subPage_link.$this->pageNums.$this->wjt_htm; $nextPageUrl=$this->subPage_link.($this->current_page+1).$this->wjt_htm; $subPageCss1Str.=" <a href='$nextPageUrl' class='next-page'>下一頁</a> ";
}else { $subPageCss1Str.="<a class='no-next'>下一頁</a> ";
} echo $subPageCss1Str; } function subPageCss2(){ $subPageCss2Str="";
if($this->current_page > 1){ $firstPageUrl=$this->subPage_link."1".$this->wjt_htm; $prewPageUrl=$this->subPage_link.($this->current_page-1).$this->wjt_htm; $subPageCss2Str.="<a href='$firstPageUrl'>首頁</a>"; $subPageCss2Str.="<a href='$prewPageUrl' title='轉到上一頁'>上一頁</a>"; }else { $subPageCss2Str.=""; $subPageCss2Str.=""; } $a=$this->construct_num_Page(); for($i=0;$i<count($a);$i++){ $s=$a[$i]; if($s == $this->current_page ){ $subPageCss2Str.="<span>".$s."</span>"; }else{ $url=$this->subPage_link.$s.$this->wjt_htm; $subPageCss2Str.="<a href='$url'>".$s."</a>"; } } if($this->current_page < $this->pageNums){ $lastPageUrl=$this->subPage_link.$this->pageNums.$this->wjt_htm; $nextPageUrl=$this->subPage_link.($this->current_page+1).$this->wjt_htm; $subPageCss2Str.="<a href='$nextPageUrl' title='轉到下一頁'>下一頁</a>"; $subPageCss2Str.="<a href='$lastPageUrl'>尾頁</a> "; }else { $subPageCss2Str.=""; $subPageCss2Str.=""; } echo $subPageCss2Str; } } ;