使用 yakpro-po 实现 Laravel 项目代码混淆加密

1,421次阅读
没有评论

背景
防止商用软件实现逻辑泄露。

工具介绍
yakpro-po 由原生 PHP 开发,所以安装的时候,保证环境能执行 PHP 命令。

安装 yakpro-po 步骤
找一个可用目录,这里按项目推荐目录为准:/user/local

cd /usr/local
通过 git 拉取 yakpro-po 代码

git clone https://github.com/pk-fr/yakpro-po.git
到 yakpro-po 目录,还需要安装 PHP-Parser

cd yakpro-po && git clone https://github.com/nikic/PHP-Parser.git
保证 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 –help
Info: Using [/usr/local/yakpro-po/yakpro-po.cnf] Config File…
Info: yakpro-po version = 2.0.13
使用方式
提供了多种方式混淆代码,因为本次是针对 Laravel 项目代码混淆,所以采用

yakpro-po source_filename -o target_filename
实践
Laravel 项目直接上面的命令,不带任何选项,混淆后的代码根本跑不起来,因为默认混淆了类名、命令空间、变量等等,所以要手动添加选项来指定混淆选项。

建议使用的选项:

yakpro-po my_app -o obfuscate_my_app –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

yakpro-po my_app -o obfuscate_my_app --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 语句
淆循环语句
淆字符串文字
随机播放语句
单行输出
混淆前后对比

需要注意的点:不要混淆 模板代码
先把模板目录拷贝出来,混淆之后,再还原回去。
混淆模板代码会用 echo 输出,造成模板标记直接当成字符串输出。后果就是页面输出类似 @if () 这类的效果。

其它 PHP 框架混淆
理论上 yakpro 适用所有 PHP 项目,多数项目是在成熟的 PHP 框架下开发,不同框架,有不同的约束,比如 Laravel 会有一些约定的配置常量,就不能混淆常量,不然代码不能正常运行。
所以当混淆后,代码跑不起来时,就需要根据实际情况,调整混淆选项了。

附录:可用混淆选项
–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 混淆标签名称

正文完
可以使用微信扫码关注公众号(ID:xzluomor)
post-qrcode
 0
评论(没有评论)

文心AIGC

2023 年 11 月
 12345
6789101112
13141516171819
20212223242526
27282930  
文心AIGC
文心AIGC
人工智能ChatGPT,AIGC指利用人工智能技术来生成内容,其中包括文字、语音、代码、图像、视频、机器人动作等等。被认为是继PGC、UGC之后的新型内容创作方式。AIGC作为元宇宙的新方向,近几年迭代速度呈现指数级爆发,谷歌、Meta、百度等平台型巨头持续布局
文章搜索
热门文章
潞晨尤洋:日常办公没必要上私有模型,这三类企业才需要 | MEET2026

潞晨尤洋:日常办公没必要上私有模型,这三类企业才需要 | MEET2026

潞晨尤洋:日常办公没必要上私有模型,这三类企业才需要 | MEET2026 Jay 2025-12-22 09...
“昆山杯”第二十七届清华大学创业大赛决赛举行

“昆山杯”第二十七届清华大学创业大赛决赛举行

“昆山杯”第二十七届清华大学创业大赛决赛举行 一水 2025-12-22 17:04:24 来源:量子位 本届...
MiniMax海螺视频团队首次开源:Tokenizer也具备明确的Scaling Law

MiniMax海螺视频团队首次开源:Tokenizer也具备明确的Scaling Law

MiniMax海螺视频团队首次开源:Tokenizer也具备明确的Scaling Law 一水 2025-12...
天下苦SaaS已久,企业级AI得靠「结果」说话

天下苦SaaS已久,企业级AI得靠「结果」说话

天下苦SaaS已久,企业级AI得靠「结果」说话 Jay 2025-12-22 13:46:04 来源:量子位 ...
最新评论
ufabet ufabet มีเกมให้เลือกเล่นมากมาย: เกมเดิมพันหลากหลาย ครบทุกค่ายดัง
tornado crypto mixer tornado crypto mixer Discover the power of privacy with TornadoCash! Learn how this decentralized mixer ensures your transactions remain confidential.
ดูบอลสด ดูบอลสด Very well presented. Every quote was awesome and thanks for sharing the content. Keep sharing and keep motivating others.
ดูบอลสด ดูบอลสด Pretty! This has been a really wonderful post. Many thanks for providing these details.
ดูบอลสด ดูบอลสด Pretty! This has been a really wonderful post. Many thanks for providing these details.
ดูบอลสด ดูบอลสด Hi there to all, for the reason that I am genuinely keen of reading this website’s post to be updated on a regular basis. It carries pleasant stuff.
Obrazy Sztuka Nowoczesna Obrazy Sztuka Nowoczesna Thank you for this wonderful contribution to the topic. Your ability to explain complex ideas simply is admirable.
ufabet ufabet Hi there to all, for the reason that I am genuinely keen of reading this website’s post to be updated on a regular basis. It carries pleasant stuff.
ufabet ufabet You’re so awesome! I don’t believe I have read a single thing like that before. So great to find someone with some original thoughts on this topic. Really.. thank you for starting this up. This website is something that is needed on the internet, someone with a little originality!
ufabet ufabet Very well presented. Every quote was awesome and thanks for sharing the content. Keep sharing and keep motivating others.
热评文章
库克提拔复旦校友掌舵苹果基础模型!庞若鸣走后涨薪止血,谷歌旧部占据半壁江山

库克提拔复旦校友掌舵苹果基础模型!庞若鸣走后涨薪止血,谷歌旧部占据半壁江山

库克提拔复旦校友掌舵苹果基础模型!庞若鸣走后涨薪止血,谷歌旧部占据半壁江山 衡宇 2025-12-21 10:...
清华孙茂松:对工业界而言,大厂可以Scaling,其他玩家重在垂直应用 | MEET2026

清华孙茂松:对工业界而言,大厂可以Scaling,其他玩家重在垂直应用 | MEET2026

清华孙茂松:对工业界而言,大厂可以Scaling,其他玩家重在垂直应用 | MEET2026 Jay 2025...
奥迪+华为=油车智能天花板?

奥迪+华为=油车智能天花板?

Failed to fetch content Read More 
LeCun离职前的吐槽太猛了

LeCun离职前的吐槽太猛了

LeCun离职前的吐槽太猛了 一水 2025-12-21 19:13:08 来源:量子位 “LLM到不了AGI...
自变量王潜:具身智能是物理世界的独立基础模型|MEET2026

自变量王潜:具身智能是物理世界的独立基础模型|MEET2026

自变量王潜:具身智能是物理世界的独立基础模型|MEET2026 一水 2025-12-21 19:11:12 ...