现场报名:hms core 3d建模服务,快速搭建优质3d模型>>>
// 一个开源加密混淆 php 代码项目// a open source php code confusion + encryption project
背景
曾经php 代码混淆,作者也是一名中青年商业软件开发者。该软件总是被别人破解php 代码混淆,所以我花了几个月的时间研究它。这套项目也已经有偿提供给了很多人,不过网上的破解应该不少。该项目的主要目的是为大家提供一个加密混乱和恢复的想法。 // 严禁用于非法用途。
加密效果
如何使用
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);
回归测试脚本:
你可以把要测试的代码放进去,然后运行命令:
php code_test.php
程序会自动进行回归测试,我也在里面放了一些要测试的脚本
附言
本来,还实现了 goto + xor 变种,不过兼容性和性能有点差,等有时间精力的时候再研究罢...
一些预防措施如何使加密更强大?尽量把全局逻辑变成类方法,类加密会有更好的加密混淆效果。对于变量初始化,请放在 () 方法中。对于多维数组,尽量使用数字下标。混淆类名时,代码一定要按顺序:
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():}
使用注释语法加密字符串(支持字符串+数字):
//格式:/**/要二次混淆的内容/**/ $a = /**/明文数据1/**/; echo /**/2/**/; print(/**/明文数据3/**/);
使用注释语法删除代码:
echo 1; /**/ echo 2; /**/ echo 3; //格式:/**/要隐藏的代码/**/
医疗网站编辑推广优化的一些基本常识网站设计中怎样学习及实践网络营销怎样做个人网站来展示自我风采互联网上广告有哪些形式选择合适的SEO优化公司很重要!企业网站建设设计怎样做才能做到更人性化电商网站建设需要注意哪些问题想要扩展更多的客户,那么你i要做到的是这