精品国产免费观看久久久_久久天天躁狠狠躁夜夜爽_无码人妻少妇久久中文字幕_狠狠做深爱婷婷久久综合一区

網絡建站知識

精準傳達 ? 價值共享

洞悉互聯網前沿資訊,探尋網站營銷規律

查看其它板塊

EnPHP:一個開源加密混淆 PHP 代碼項目 官方已開源

作者:狐靈科技 | 2019-10-15 13:17 |點擊:

EnPHP

LOGO

// 一個開源加密混淆 PHP 代碼項目
// a Open Source PHP Code Confusion + Encryption Project

項目地址

GITHUB:https://github.com/djunny/enphp

GITEE:https://gitee.com/mz/enphp_opensource

背景

曾經,作者也是商業軟件開發者中小將一名,軟件總是被人破解,于是花了幾個月研究了 EnPHP。
這套項目也有償提供過給很多人,不過,應該網上存在不少破解了。
項目主要貴在為大家提供一個加密混淆和還原的思路。
// 嚴禁用于非法用途。

加密效果

LOGO

使用方法

include './func_v2.php';
$options = array(
        //混淆方法名 1=字母混淆 2=亂碼混淆
        'ob_function'        => 2,
        //混淆函數產生變量最大長度
        'ob_function_length' => 3,
        //混淆函數調用 1=混淆 0=不混淆 或者 array('eval', 'strpos') 為混淆指定方法
        'ob_call'            => 1,
        //隨機插入亂碼
        'insert_mess'        => 0,
        //混淆函數調用變量產生模式  1=字母混淆 2=亂碼混淆
        'encode_call'        => 2,
        //混淆class
        'ob_class'           => 0,
        //混淆變量 方法參數  1=字母混淆 2=亂碼混淆
        'encode_var'         => 2,
        //混淆變量最大長度
        'encode_var_length'  => 5,
        //混淆字符串常量  1=字母混淆 2=亂碼混淆
        'encode_str'         => 2,
        //混淆字符串常量變量最大長度
        'encode_str_length'  => 3,
        // 混淆html 1=混淆 0=不混淆
        'encode_html'        => 2,
        // 混淆數字 1=混淆為0x00a 0=不混淆
        'encode_number'      => 1,
        // 混淆的字符串 以 gzencode 形式壓縮 1=壓縮 0=不壓縮
        'encode_gz'          => 0,
        // 加換行(增加可閱讀性)
        'new_line'           => 1,
        // 移除注釋 1=移除 0=保留
        'remove_comment'     => 1,
        // debug
        'debug'              => 1,
        // 重復加密次數,加密次數越多反編譯可能性越小,但性能會成倍降低
        'deep'               => 1,
        // PHP 版本
        'php'                => 7,
    );
$file = 'code_test/1.php';
$target_file = 'encoded/2.php';
enphp_file($file, $target_file, $options);

回歸測試腳本:

可以將你要測試的代碼放至 code_test 中,運行命令:

php code_test.php

程序會自動進行回歸測試,我也放了一些之前要測試的腳本在里邊

P.S.

本來,還實現了 goto + xor 變種,不過兼容性和性能有點差,等有時間精力的時候再研究罷...

一些注意事項

如何讓 EnPHP 加密強度更高?

  1. 將全局邏輯盡量變成類方法,EnPHP 對類加密會有更好的加密混淆效果
  2. 對于 class 的變量初始化請放至析構(__construct)方法中
  3. 對于多維數組能用數字下標盡量用數字
  4. 使用注釋加密加強混淆強度

在混淆類名時,代碼一定要有先后順序:

interface i {
    function init($a, $b);
}

class ii implements i {
    // PHP 中繼承的參數名可以不一樣
    function init($b, $c) {
        echo $b, $c;
    }
}
namespace a{
    class b{
    }
    # 正確
    $b = new \a\b();
    # 錯誤 
    #$b = new b():
}

使用注釋語法加密字符串(支持字符串+數字):

   //格式:/*<encode>*/要二次混淆的內容/*</encode>*/
   $a = /*<encode>*/"明文數據1"/*</encode>*/;
   echo /*<encode>*/2/*</encode>*/;
   print(/*<encode>*/"明文數據3"/*</encode>*/);

使用注釋語法去除代碼:

   echo 1;
   /*<hide>*/
   echo 2;
   /*</hide>*/
   echo 3;
   //格式:/*<hide>*/要隱藏的代碼/*</hide>*/
如沒特殊注明,文章均為狐靈科技原創,轉載請注明?? "EnPHP:一個開源加密混淆 PHP 代碼項目 官方已開源
多一份免費策劃方案,總有益處。

請直接添加技術總監微信聯系咨詢

網站設計 品牌營銷

多一份參考,總有益處

聯系狐靈科技,免費獲得專屬《策劃方案》及報價

咨詢相關問題或預約面談,可以通過以下方式與我們聯系

業務熱線:15082661954 / 大客戶專線:15523356218