一、简介
yakpro-po 加密后可直接运行,免费,网址:https://github.com/pk-fr/yakpro-po
yakpro-po 由原生 PHP 开发,所以安装的时候,保证环境能执行 PHP 命令。
二、安装
找一个可用目录,这里按项目推荐目录为准:/user/local
cd /usr/local
通过 git 拉取 yakpro-po 代码
git clone https://github.com/pk-fr/yakpro-po.git
到 yakpro-po 目录,还需要安装 PHP-Parser
PHP-Parser 是一个用 PHP 编写的 PHP 解析器(支持 PHP 5.4 以及更早的版本),该项目的目的是简化静态代码分析和操作。 主要功能是: 将PHP 5,PHP 7 和 PHP 8 代码解析为抽象语法树(AST)。 无效的代码可以解析为部分AST。 AST包含准确的位置信息。 以人类可读的形式倾销AST。 将 AST 转换回PHP代码。 实验性的:对于部分更改的AST,可以保留格式。 遍历和修改 AST 的基础结构。 命名空间名称的解析。 常量表达式的评估。 简化 AST 构建的代码生成器。 将 AST 转换为 JSON 并返回。
cd yakpro-po
git clone https://github.com/nikic/PHP-Parser.git --branch 4.x
保证 yakpro-po 有可执行权限
chmod a+x yakpro-po.php
为方便使用,建立软连接到 bin 目录
cd /usr/local/bin
ln -s /usr/local/yakpro-po/yakpro-po.php yakpro-po
安装完毕,查看下是否正常
yakpro-po –help
三、使用
yakpro-po source_filename -o target_filename
yakpro-po source_directory -o target_directory
建议使用的选项:
yakpro-po source_filename -o target_filename --no-obfuscate-function-name --no-obfuscate-class_constant-name --no-obfuscate-class-name --no-obfuscate-interface-name --no-obfuscate-trait-name --no-obfuscate-property-name --no-obfuscate-method-name --no-obfuscate-namespace-name --no-obfuscate-label-name
这里混淆了:
淆变量名
混淆常量名
混淆 if 语句
淆循环语句
淆字符串文字
随机播放语句
单行输出
可用混淆选项:
--no-strip-indentation 多行输出
--strip-indentation 单行输出
--no-shuffle-statements 不打乱语句
--shuffle-statements 随机播放语句
--no-obfuscate-string-literal 不混淆字符串文字
--obfuscate-string-literal 混淆字符串文字
--no-obfuscate-loop-statement 不混淆循环语句
--obfuscate-loop-statement 混淆循环语句
--no-obfuscate-if-statement 不混淆 if 语句
--obfuscate-if-statement 混淆 if 语句
--no-obfuscate-constant-name 不混淆常量名
--obfuscate-constant-name 混淆常量名
--no-obfuscate-variable-name 不混淆变量名
--obfuscate-variable-name 混淆变量名
--no-obfuscate-function-name 不混淆函数名
--obfuscate-function-name 混淆函数名
--no-obfuscate-class_constant-name 不混淆类常量名
--obfuscate-class_constant-name 混淆类常量名
--no-obfuscate-class-name 不混淆类名
--obfuscate-class-name 混淆类名
--no-obfuscate-interface-name 不混淆接口名称
--obfuscate-interface-name 混淆接口名称
--no-obfuscate-trait-name 不混淆特征名称
--obfuscate-trait-name 混淆特征名称
--no-obfuscate-property-name 不混淆属性名称
--obfuscate-property-name 混淆属性名称
--no-obfuscate-method-name 不混淆方法名
--obfuscate-method-name 混淆方法名称
--no-obfuscate-namespace-name 不混淆命名空间名称
--obfuscate-namespace-name 混淆命名空间名称
--no-obfuscate-label-name 不混淆标签名称
--obfuscate-label-name 混淆标签名称
四、解密
下载代码:goto.zip
解密方法:
php 版本需要大于 7
需要解析的文件放到 decodeFile 下,解析至 complete 下
解析的可以是多个文件,不能放置文件夹
配置运行环境,执行 index.php 就可以