php混淆加密解密實戰


在查看別人的php源碼的時候,我們經常會看到加密后的php代碼.那么php加密原理是什么呢?怎么解密呢?

 

混淆加密

我們從百度隨便搜索一個加密網站,例如:http://dezend.qiling.org/encrypt/

加密代碼:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
/**
  * Created by PhpStorm.
  * User: tioncico
  * Date: 20-3-28
  * Time: 上午9:59
  */
class  Tioncico{
     function  testEcho(){
         echo  "仙士可\n" ;
     }
}
$tioncico  new  Tioncico();
$tioncico ->testEcho();

加密成功后:

仙士可博客

 

成功執行:

仙士可博客

 

那么,這串代碼的加密原理是什么呢?能解密嗎?

在這串代碼中,我們發現了最后有段代碼為:eval();(如果你通過打印eval的第一個變量,可以發現這個變量為base64_decode)

很明顯,該代碼最后通過這串代碼執行,通過echo把eval需要執行的代碼輸出:

仙士可博客

 

可以發現,它又是一個eval包裹,繼續輸出:

仙士可博客

同理,找到最后的eval,輸出:

仙士可博客

 

繼續:

仙士可博客仙士可博客

 

則得到了加密前的代碼.   

 

混淆加密的原理

混淆加密通過不斷重復的base64,然后混淆base64_encode,decode函數,最后通過eval 解密執行完成.  只要稍微了解了一點原理,就能解密成功了.

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM