c++字符串加密_一个开源加密混淆PHP代码项目

项目背景

曾经,作者也是商业软件开发者中小将一名,软件总是被人破解,于是花了几个月研究了 EnPHP。这套项目也有偿提供过给很多人,不过,应该网上存在不少破解了。项目主要贵在为大家提供一个加密混淆和还原的思路。

加密效果

33d41a3e3b379b4025e2fc84dfc06232.png

使用方法

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

程序会自动进行回归测试,我也放了一些之前要测试的脚本在里边。

本来,还实现了 goto + xor 变种,不过兼容性和性能有点差,等有时间精力的时候再研究罢...

b64616a510247991ddc51eee53abf4aa.png

注意事项:

如何让 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 ab();

# 错误

#$b = new b():

}

使用注释语法加密字符串(支持字符串+数字):

//格式:/**/要二次混淆的内容/**/

$a = /**/"明文数据1"/**/;

echo /**/2/**/;

print(/**/"明文数据3"/**/);

使用注释语法去除代码:

echo 1;

/**/

echo 2;

/**/

echo 3;

//格式:/**/要隐藏的代码/**/

项目地址:

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值