多维能用数字使用加密加密加强混淆和还原的思路
2021-07-27
曾经,作者也是一名中青年商业软件开发者。该软件总是被别人破解,所以我花了几个月的时间研究它。这套项目也已经有偿提供给了很多人,不过网上的破解应该不少。该项目的主要目的是为大家提供一个加密混乱和恢复的想法。 // 严禁用于非法用途。
加密效果
如何使用
'./.php';
$ = (
//混淆方法名 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 ='/1.php';
$='/2.php';
($file, $, $);
回归测试脚本:
你可以把要测试的代码放进去php 代码混淆,然后运行命令:
php .php
程序会自动进行回归测试,我也在里面放了一些要测试的脚本
附言
本来也实现了goto+xor的变种,但是兼容性和性能有点差,等有时间有精力再研究一下...
一些注意事项
如何让加密更强大?
尽量将全局逻辑转为类方法,类加密会有更好的加密混淆效果
对于变量的初始化php 代码混淆,请放在()方法中
对于多维数组,尽量使用数字。
使用注解加密增强混淆强度
混淆类名时,代码一定要顺序:
我{
function init($a, $b);
}
ii i {
// PHP 中继承的参数名可以不一样
function init($b, $c) {
echo $b, $c;
}
}
一个{
class b{
}
# 正确
$b = new \a\b();
# 错误
#$b = new b():
}
使用注释语法加密字符串(支持字符串+数字):
//格式://第二次混淆的内容//
$a = //"明文数据 1"//;
echo //2//;
(//"明文数据3"//);
使用注释语法删除代码:
回声1;
回声2;
回声3;
//格式://要隐藏的代码//