// 一個(gè)開源加密混淆 PHP 代碼項(xiàng)目// a Open Source PHP Code Confusion + Encryption Project
項(xiàng)目地址
GITHUB:https://github.com/djunny/enphp
GITEE:https://gitee.com/mz/enphp_opensource
背景
曾經(jīng),作者也是商業(yè)軟件開發(fā)者中小將一名,軟件總是被人破解,于是花了幾個(gè)月研究了 EnPHP。這套項(xiàng)目也有償提供過給很多人,不過,應(yīng)該網(wǎng)上存在不少破解了。項(xiàng)目主要貴在為大家提供一個(gè)加密混淆和還原的思路。// 嚴(yán)禁用于非法用途。
加密效果
使用方法
include './func_v2.php'; $options = array( //混淆方法名 1=字母混淆 2=亂碼混淆 'ob_function' => 2, //混淆函數(shù)產(chǎn)生變量最大長度 'ob_function_length' => 3, //混淆函數(shù)調(diào)用 1=混淆 0=不混淆 或者 array('eval', 'strpos') 為混淆指定方法 'ob_call' => 1, //隨機(jī)插入亂碼 'insert_mess' => 0, //混淆函數(shù)調(diào)用變量產(chǎn)生模式 1=字母混淆 2=亂碼混淆 'encode_call' => 2, //混淆class 'ob_class' => 0, //混淆變量 方法參數(shù) 1=字母混淆 2=亂碼混淆 'encode_var' => 2, //混淆變量最大長度 'encode_var_length' => 5, //混淆字符串常量 1=字母混淆 2=亂碼混淆 'encode_str' => 2, //混淆字符串常量變量最大長度 'encode_str_length' => 3, // 混淆html 1=混淆 0=不混淆 'encode_html' => 2, // 混淆數(shù)字 1=混淆為0x00a 0=不混淆 'encode_number' => 1, // 混淆的字符串 以 gzencode 形式壓縮 1=壓縮 0=不壓縮 'encode_gz' => 0, // 加換行(增加可閱讀性) 'new_line' => 1, // 移除注釋 1=移除 0=保留 'remove_comment' => 1, // debug 'debug' => 1, // 重復(fù)加密次數(shù),加密次數(shù)越多反編譯可能性越小,但性能會成倍降低 'deep' => 1, // PHP 版本 'php' => 7, ); $file = 'code_test/1.php'; $target_file = 'encoded/2.php'; enphp_file($file, $target_file, $options);
回歸測試腳本:
可以將你要測試的代碼放至 code_test 中,運(yùn)行命令:
php code_test.php
程序會自動進(jìn)行回歸測試,我也放了一些之前要測試的腳本在里邊
P.S.
本來,還實(shí)現(xiàn)了 goto + xor 變種,不過兼容性和性能有點(diǎn)差,等有時(shí)間精力的時(shí)候再研究罷...
一些注意事項(xiàng)
如何讓 EnPHP 加密強(qiáng)度更高?
- 將全局邏輯盡量變成類方法,EnPHP 對類加密會有更好的加密混淆效果
- 對于 class 的變量初始化請放至析構(gòu)(__construct)方法中
- 對于多維數(shù)組能用數(shù)字下標(biāo)盡量用數(shù)字
- 使用注釋加密加強(qiáng)混淆強(qiáng)度
在混淆類名時(shí),代碼一定要有先后順序:
interface i { function init($a, $b); } class ii implements i { // PHP 中繼承的參數(shù)名可以不一樣 function init($b, $c) { echo $b, $c; } }
namespace a{ class b{ } # 正確 $b = new \a\b(); # 錯(cuò)誤 #$b = new b(): }
使用注釋語法加密字符串(支持字符串+數(shù)字):
//格式:/**/要二次混淆的內(nèi)容/* */ $a = /**/"明文數(shù)據(jù)1"/* */; echo /**/2/* */; print(/**/"明文數(shù)據(jù)3"/* */);
使用注釋語法去除代碼:
echo 1; /**/ echo 2; /* */ echo 3; //格式:/**/要隱藏的代碼/* */
下
載
面
板
載
面
板
文件名稱:enphp
更新時(shí)間:2019-09-18 14:51:11
下載聲明:本站默認(rèn)解壓密碼(www.zoe725.cn)網(wǎng)絡(luò)資源來自網(wǎng)絡(luò)收集或本人原創(chuàng),轉(zhuǎn)載請?jiān)]明出處!若資源侵犯了你的版權(quán),請聯(lián)繫博主,我們會在24H內(nèi)刪除侵權(quán)資源!
轉(zhuǎn)載請注明出處 AE博客|墨淵 ? enphp一個(gè)開源加密混淆PHP代碼項(xiàng)目
發(fā)表評論