PHP使用eval(gzinflate(str_rot13(base64_decode(‘BASE64加密後內容’))))核心代碼的解密
下非擴充方式的php教程加密方法:
這裡有個線上的,還不錯。木馬防殺還行,要保護代碼可就不行了。
對應的寫了一個簡單的解密的,
專門針對eval。這個原理很有用途。
特別說明:此解密程式好像一定得在PHP5上面使用,
我在PHP4上面測試eval(gzinflate(str_rot13(base64_decode(‘BASE64加密後內容’))))內加密的代碼始終無法正常解密.
<?php
//已經加密的檔案內容
$a=”eval(gzinflate(str_rot13(base64_decode(‘這裡面放BASE64代碼’))));”;
function decodephp($a) {
$max_level=300; //最大層數
for($i=0;$i<$max_level;$i++) {
ob_start();
eval(str_replace(‘eval’,'echo’,$a));
$a = ob_get_clean();
if(strpos($a,’eval(gzinflate(str_rot13(base64_decode’)===false) {
return $a;
}
}
}
echo decodephp($a);
?>
php使用N層加密eval(gzinflate(base64_decode(“codes”)))的破解
首先申明一下,這個並非是我原創,是我轉自一個國外的BLOG上面的.自己測試了下.覺得很好用的.
如果您想看的是PHP使用eval(gzinflate(str_rot13(base64_decode(‘BASE64加密後內容’))))核心代碼的解密,請移步這裡查看:PHP使用eval(gzinflate(str_rot13(base64_decode(‘BASE64加密後內容’))))核心代碼的解密.
特別說明:此解密程式好像一定得在PHP5上面使用,
我在PHP4上面測試eval(gzinflate(base64_decode(“codes”)))內加密的代碼始終無法正常解密
以下是代碼:
<?php
/*
Taken from [url]http://www.php.net/manual/de/function.eval.php#59862[/url]
Directions:
1. Save this snippet as decrypt.php
2. Save encoded PHP code in coded.txt
3. Create a blank file called decoded.txt (from shell do CHMOD 0666 decoded.txt)
4. Execute this script (visit decrypt.php in a web browser or do php decrypt.php in the shell)
5. Open decoded.txt, the PHP should be decrypted if not post the code on [url]http://www.ariadoss.com/forums/web-development/lamp[/url]
gzinflate執行加密代碼的解密方法翻譯為中文後的文字(此段漢字原始檔案裡面可沒.嘿)
1. 把這整段指令碼儲存為decrypt.php
2. 把需要解密的代碼儲存為coded.txt並且和decrypt.php在同一目錄.
3. 建立一個空白檔案命名為 decoded.txt (必須把 decoded.txt 的使用權限設定為CHMOD 0666,也就是可以寫入的.當然,你可以不建立檔案檔案.只要檔案夾有寫入許可權,指令碼便會自動建立一個名為decoded.txt的文檔. )
4. 運行解密指令碼 (瀏覽器中運行decrypt.php 即訪問 http://您的網域名稱/存放目錄/decrypt.php)
5. 開啟 decoded.txt, 代碼應該已經解密完成,如果出現錯誤請把代碼發送到 [url]http://www.ariadoss.com/forums/web-
development/lamp[/url]
*/
echo “nDECODE nested eval(gzinflate()) by DEBO Jurgen <mailto:jurgen@person.benn”;
echo “1. Reading coded.txtn”;
$fp1 = fopen (“coded.txt”, “r”);
$contents = fread ($fp1, filesize (“coded.txt”));
fclose($fp1);
echo “2. Decodingn”;
while (preg_match(“/eval(gzinflate/”,$contents)) {
$contents=preg_replace(“/<?|?>/”, “”, $contents); eval(preg_replace(“/eval/”, “$contents=”, $contents)); } echo “3. Writing decoded.txtn”; $fp2 = fopen(“decoded.txt”,”w”); fwrite($fp2, trim($contents)); fclose($fp2);
?>
再簡單的說下gzinflate,eval(gzinflate(base64_decode(“codes”)));decoding-eval-gzinflate-base64_decode的使用方法.
儲存上面的程式檔案decrypt.php,
當然檔案名稱可以自己設定.
在此檔案的同一目錄建立一個coded.txt,
這個裡面放的是加密過的代碼,也就是eval(gzinflate(base64_decode(“codes”)))當中的codes;
再說明白點就是是要解密的eval(gzinflate(base64_decode(“codes”)))裡面執行的密原文.
執行儲存過的檔案decrypt.php,這樣便會在同一目錄產生一個decoded.txt的txt文檔,
開啟此文檔.裡面就是那些被加密的原始代碼.