當前位置:首頁 » 密碼管理 » 威盾php加密專家

威盾php加密專家

發布時間: 2023-06-13 15:15:50

php源碼怎麼加密

一、無需任何PHP擴展的加密

此類加密的代表有 威盾PHP加密專家、PHP在線加密平台、PHP神盾 等。

此類加密都是以eval函數為核心,輔以各式各樣的字元串混淆和各種小技巧,來達到加密目的(更准確的說,應該算是混淆)。下面以一個簡單的hello world為例來說明此類加密的大體過程。

<?php

echo "hello world";

首先 ,我們把這段代碼變為通過eval執行的

<?php

eval('echo "hello world";');

然後 ,我們再進行一些轉換,比如說base64編碼

<?php

eval(base64_decode('ZWNobyAiaGVsbG8gd29ybGQiOw=='));

就這樣子,我們的第一個加密過的php代碼新鮮出爐了。。。

上面這個例子非常非常簡單,基本上任何有一點php語言基礎甚至別的語言基礎的人都能輕松的看懂並解密。因此,我們需要一些方法讓這個加密至少看上去不是那麼簡單。

二、同時採用多種編碼函數

除了剛才提到的base64,php還有許多內置的編碼函數,例如urlencode、gzcompress等。把這些函數混合使用可以提高解密的復雜度(不是難度),此外還可以使用strtr來制定自己的編碼規則。 使用變數來代替函數名 使用特定字元來命名變數

這兒所說的特定字元是一些極其相似的字元,如I和1,0和O。試想一下滿屏都是O和0組成的變數,並且每一個的名字長度都在10個字元以上。。。 判斷文件自身是否被修改

這個功能看似容易,對文件做一下摘要再進行下對比即可知道是否被修改了,但是如何才能在文件內把摘要嵌入進去呢?我沒有找到完美的方案,但一個變通的方案還是很容易的。。。

<?php

$code = substr(file_get_contents(__FILE__), 0, -32);

$hash = substr(file_get_contents(__FILE__), -32);

if (md5($code) !== $hash) {

exit('file edited');

}

當然,你可以把這個校驗字元串放在別的位置來提高破解的難度。有了這個,別人想破解你的程序可就得多費一點功夫了。。。

既然知道了原理,那解密自然也就非常簡單了,總體來說就三步:

把eval替換為輸出,比如echo 根據編碼規則把字元串還原 如果文件未解密完全,從第一步開始繼續

當然,實際上的解密過程並沒有這么簡單,比如說如果加密的時候使用了gzcompress,那得到的數據將會包含一些二進制數據,而採用一般的文本編輯器打開時這些數據都會顯示為亂碼,並且在保存時丟失部分數據。解決方法很簡單也很麻煩,那就是使用二進制(16進制)方式打開、修改和保存。

㈡ 威盾PHP加密求解密 威盾php解密

<?php

require_once $GLOBALS['OOO0000O0']('Y29uZmlnLnBocA==');
require_once $GLOBALS['OOO0000O0']('cHVibGljL3dmc2VuZC5waHA=');
function WFCode($string,$operation,$key){
$key=md5($GLOBALS['OOO0000O0']('V0ZQSFBXRU5GRUkyMDEyODg4OA=='));
$key_length=strlen($key);
$string=$operation==$GLOBALS['OOO0000O0']('RA==')?$GLOBALS[$GLOBALS['OOO0000O0']('SUlJSUlJSUlJSWwx')]($string):$GLOBALS[$GLOBALS['OOO0000O0']('SUlJSUlJSUlJSTFJ')](md5($string.$key),0,8).$string;
$string_length=strlen($string);
$rndkey=$box=array();
$result=$GLOBALS['OOO0000O0']('');
for($i=0;$i<=255;$i++){
$rndkey[$i]=$GLOBALS[$GLOBALS['OOO0000O0']('SUlJSUlJSUlJbGxJ')]($key[$i%$key_length]);
$box[$i]=$i;
}
for($j=$i=0;$i<256;$i++){
$j=($j+$box[$i]+$rndkey[$i])%256;
$tmp=$box[$i];
$box[$i]=$box[$j];
$box[$j]=$tmp;
}
for($a=$j=$i=0;$i<$string_length;$i++){
$a=($a+1)%256;
$j=($j+$box[$a])%256;
$tmp=$box[$a];
$box[$a]=$box[$j];
$box[$j]=$tmp;
$result.=$GLOBALS[$GLOBALS['OOO0000O0']('SUlJSUlJSUlJbDFs')]($GLOBALS[$GLOBALS['OOO0000O0']('SUlJSUlJSUlJbGxJ')]($string[$i])^($box[($box[$a]+$box[$j])%256]));
}
if($operation==$GLOBALS['OOO0000O0']('RA==')){
if($GLOBALS[$GLOBALS['OOO0000O0']('SUlJSUlJSUlJSTFJ')]($result,0,8)==$GLOBALS[$GLOBALS['OOO0000O0']('SUlJSUlJSUlJSTFJ')](md5($GLOBALS[$GLOBALS['OOO0000O0']('SUlJSUlJSUlJSTFJ')]($result,8).$key),0,8)){
return $GLOBALS[$GLOBALS['OOO0000O0']('SUlJSUlJSUlJSTFJ')]($result,8);
}
else{
return$GLOBALS['OOO0000O0']('');
}
}
else{
return str_replace($GLOBALS['OOO0000O0']('PQ=='),$GLOBALS['OOO0000O0'](''),$GLOBALS[$GLOBALS['OOO0000O0']('SUlJSUlJSUlJbDEx')]($result));
}
}
$errormsg = WFCode($GLOBALS['OOO0000O0']('Y5NA=='),$GLOBALS['OOO0000O0']('RA=='),$GLOBALS['OOO0000O0']('V0ZQSFA='));
$smtpm = WFCode($GLOBALS['OOO0000O0']('ZDhUVXp5Mw=='),$GLOBALS['OOO0000O0']('RA=='),$GLOBALS['OOO0000O0']('V0ZQSFA='));
if($usmtp!= WFCode($GLOBALS['OOO0000O0'](''),$GLOBALS['OOO0000O0']('RA=='),$GLOBALS['OOO0000O0']('V0ZQSFA=')).$wsmtp){echo $smtpm;exit;}
$out_trade_no = $GLOBALS[$GLOBALS['OOO0000O0']('SUlJSUlJSUlJMWwx')]($GLOBALS['OOO0000O0']('WW1kSGlz'));
$dddate = $GLOBALS[$GLOBALS['OOO0000O0']('SUlJSUlJSUlJMWwx')]($GLOBALS['OOO0000O0']('WS1tLWQgSDpp'));
$proct = $_POST[$GLOBALS['OOO0000O0']('cHJvZHVjdA==')];
$proctb = $_POST[$GLOBALS['OOO0000O0']('cHJvZHVjdGI=')];
$proctdx = $_POST[$GLOBALS['OOO0000O0']('cHJvZHVjdGR4')];
$proctc = $GLOBALS[$GLOBALS['OOO0000O0']('SUlJSUlJSUlsSWxJ')]($GLOBALS['OOO0000O0']('PGJyPg=='),$proctdx);
$cpmun = $_POST[$GLOBALS['OOO0000O0']('Y3BtdW4=')];
$price = $_POST[$GLOBALS['OOO0000O0']('cHJpY2U=')];
$zfbjg = $price * $alipayzk;
$dgname = $_POST[$GLOBALS['OOO0000O0']('ZGYW1l')];
$province = $_POST[$GLOBALS['OOO0000O0']('cHJvdmluY2U=')];
$city = $_POST[$GLOBALS['OOO0000O0']('Y2l0eQ==')];
$area = $_POST[$GLOBALS['OOO0000O0']('YXJlYQ==')];
$address = $_POST[$GLOBALS['OOO0000O0']('YWRkcmVzcw==')];
$post = $_POST[$GLOBALS['OOO0000O0']('cG9zdA==')];
$mob = $_POST[$GLOBALS['OOO0000O0']('bW9i')];
$tel = $_POST[$GLOBALS['OOO0000O0']('dGVs')];
$qq = $_POST[$GLOBALS['OOO0000O0']('cXE=')];
$email = $_POST[$GLOBALS['OOO0000O0']('ZW1haWw=')];
$paytype = $_POST[$GLOBALS['OOO0000O0']('cGF5dHlwZQ==')];
$guest = $_POST[$GLOBALS['OOO0000O0']('Z3Vlc3Q=')];
$mail = new PHPMailer();
$mail->CharSet = $GLOBALS['OOO0000O0']('Z2IyMzEy');
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->Port = 25;
$mail->Host = $Mailhost;
$mail->Username = $MailUsername;
$mail->Password = $MailPassword;
$mail->From = $MailFrom;
$mail->FromName = $FromName;
$mail->AddAddress($MailTo,$FromName);
$mail->AddAddress($MailTob,$FromName);
$mail->WordWrap = 50;
$mail->IsHTML(true);

?>

㈢ 威盾PHP加密代碼解密後,為什麼不能用

<?php
/***********************************
*威盾PHP加密專家解密演算法 By:SPY64
*
*2009-10-5
***********************************/

$filename="play-js.php";//要解密的文件
$lines = file($filename);//0,1,2行

//第一次base64解密
$content="";
if(preg_match("/O0O0000O0\('.*'\)/",$lines[1],$y))
{
$content=str_replace("O0O0000O0('","",$y[0]);
$content=str_replace("')","",$content);
$content=base64_decode($content);
}
//第一次base64解密後的內容中查找密鑰
$decode_key="";
if(preg_match("/\),'.*',/",$content,$k))
{
$decode_key=str_replace("),'","",$k[0]);
$decode_key=str_replace("',","",$decode_key);
}
//查找要截取字元串長度
$str_length="";
if(preg_match("/,\d*\),/",$content,$k))
{
$str_length=str_replace("),","",$k[0]);
$str_length=str_replace(",","",$str_length);
}
//截取文件加密後的密文
$Secret=substr($lines[2],$str_length);
//echo $Secret;

//直接還原密文輸出
echo "<?php\n".base64_decode(strtr($Secret,$decode_key,'+/'))."?>";

?>

㈣ 對php文件加密,有哪些免費軟體,怎麼加密

php 源文件加密工具PHP Screw .

目前最新版本是1.3
網址
http://sourceforge.net/projects/php-screw/
我的安裝環境
系統:Slackware 10
軟體:Apache 1.3.31
PHP 4.3.7
以上環境全部是slackware 10默認安裝後自帶的。具體的Apache+php+mysql安裝方法參照如下
支持php的Apache環境安裝
獲得軟體
下載php_screw-1.3 (http://prdownloads.sourceforge.net/php-screw/php_screw-1.3.tgz?download)

安裝
1.將獲得的php_screw-1.3.tgz文件放到/usr/local目錄下,然後用tar解壓縮
tar zxvf php_screw-1.3.tgz

2.進入/usr/local/php_screw-1.3目錄開始安裝
cd /usr/local/php_screw-1.3
phpize
./confiugre

3.設置自己用來加密的密碼
vi my_screw.h

-- Please change the encryption SEED key (pm9screw_mycryptkey) into the
values according to what you like.
The encryption will be harder to break, if you add more values to the
encryption SEED array. However, the size of the SEED is unrelated to
the time of the decrypt processing.

* If you can read and understand the source code, to modify an original
encryption logic will be possible. But in general, this should not
be necessary.

OPTIONAL: Encrypted scripts get a stamp added to the beginning of the
file. If you like, you may change this stamp defined by
PM9SCREW and PM9SCREW_LEN in php_screw.h. PM9SCREW_LEN must
be less than or equal to the size of PM9SCREW.

4.編譯
make

5.拷貝moles目錄下的php_screw.so文件到/usr/lib/php/extension目錄下
cp moles/php_screw.so /usr/lib/php/extension/

6.編輯php.ini文件
在php.ini文件里,加入如下語句
extension=php_screw.so

7.重新啟動Apache
/etc/rc.d/rc.httpd restart

8.編譯加密工具
cd tools
make

9.將tools目錄下加密用的工具screw拷貝到適當目錄
cp screw /usr/bin/

經過以上的10步,就已經把php_screw-1.3全部安裝完成了。並且現在的php也已經支持解釋加密過的php文件了
使用
1.現寫一個要加密的php文件。
我寫了如下的一個用來測試php速度的compute.php文件

<?
$a=0;
$t=time();
for($i=0;$i<5000000;$i++)
{$a=$a*$i;}
$t1=time();
echo "<p>";
echo "It used:";
echo $t1-$t;
echo "seconds";
?>
將上面的compute.php文件放到/var/www/htdocs目錄下。通過瀏覽器訪問,將顯示出php在大量計算時的速度(只能粗略估計一下)
2.將我們寫的php文件加密
cd /var/www/htdocs/
screw compute.php

我們加密後,現在目錄下的compute.php文件就是我們已經加密的了。而源文件被改名為compute.php.screw存放了。
我們現在再測試一下compute.php,看看能否正常使用?速度如何?
我比較了一下,加密前後的速度大概一樣,基本沒有太多的損失。

㈤ PHP代碼是否能夠進行編譯後再執行呀

php無需編譯,可以邊寫邊運行。調試比較方便。需要安裝web伺服器和php。必須通過訪問自己創建的站點執行。

apache+php可以。不過你如果用的是windows而且已經安裝了IIS的話直接安裝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」。

轉載僅供參考,版權屬於原作者。祝你愉快,滿意請採納哦

㈦ 請問如何將威盾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

熱點內容
安卓手機中的投影在哪裡 發布:2025-02-05 08:01:57 瀏覽:594
php調用定義函數 發布:2025-02-05 08:00:30 瀏覽:452
ubuntujava環境變數 發布:2025-02-05 07:57:13 瀏覽:443
sql語句on 發布:2025-02-05 07:41:42 瀏覽:598
取消電腦密碼怎麼設置8 發布:2025-02-05 07:24:16 瀏覽:393
洗腦編程 發布:2025-02-05 07:23:52 瀏覽:948
osd加密 發布:2025-02-05 07:17:39 瀏覽:36
微信游戲源碼下載 發布:2025-02-05 07:17:29 瀏覽:384
計算機內存儲器是 發布:2025-02-05 07:13:35 瀏覽:144
classpathlinux 發布:2025-02-05 07:12:57 瀏覽:564