簡體   English   中英

如何檢查php文件是否被混淆?

[英]how to check if a php file is obfuscated?

有什么方法我們可以檢查一個PHP文件是否已被混淆,使用PHP? 我正在考慮正則表達式(例如ioncube的編碼文件包含很長的字母串等。

一個想法是檢查空格。 混淆器首先要做的是刪除多余的空格。 您可以尋找的另一件事是每行的字符數,因為混淆器會將所有代碼放入少數(一個?)行。

通常,混淆器初始化非常大的數組以將變量轉換為不太有意義的名稱(例如,參見obsfucator文章

一種技術可能是搜索這些超大型數組,靠近類/文件的頂部等。您可以將xdebug掛起來檢查/查找這些數組。 整個過程當然取決於所使用的混淆技術。 檢查源代碼,可能有他們使用的模式,您可以搜索。

我認為您可以使用token_get_all()來解析文件 - 然后計算一些統計信息。 例如,檢查函數調用的數量(在calse obfuscator中使用一些eval()字符串而不計算其他內容)並計算平均函數長度 - 對於混淆器,它通常約為3-5個字符,對於普通的PHP代碼,它應該更大。 您還可以使用字典查找功能/變量名稱,檢查注釋等。我想如果您知道要檢測的所有混淆器格式 - 這將很容易。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM