PHP编译器BPC的第一个成功案例来了!
不清楚BPC是什么的参看这里:
开发了一年多的 PHP 编译器 BPC 初见成效,发一些测试程序给大家看看
在完成了更多的扩展开发后,BPC终于成功编译出了它的第一个成规模的应用,来自云招OurATS的简历解析工具: bob-parser.
先上链接
www.ourats.com/bpc/bob-parser.tria... 可直接下载,但速度有限
caiyun.139.com/m/i?155CFLSx9QIDS 提取码:f4jg 和彩云网盘,需要注册才能下载,速度快
此程序仅在 Ubuntu 18.04 amd64 上测试通过,其它平台不保证.
下载回来后当然要 chmod a+x bob-parser.trial
才能执行.
此程序是bob-parser的试用版,有诸多限制,正式版是要收费的,先说明一下.
简单介绍下bob-parser
bob-parser是一个简历解析工具,就是从简历中提取出来姓名,电话,邮箱,工作经历,教育经历等字段的一个程序.
bob-parser是一个通用型的解析工具,不是按渠道和模板进行preg_match的那种.
bob-parser原本是云招OurATS招聘管理系统的一个基础组件,后独立出来提供在线API调用.
bob-parser使用PHP语言开发,现经由BPC,将所有PHP文件编译成一个可执行文件发布出来了.
官网地址是: https://www.bob-parser.com
借由bob-parser深入解说一下BPC的几个特性
100%源码保护
PHP的源码保护目前最强的应该就是基于opcode的了,但据我所知,现在至少有两个可用的opcode反编译器,所以opcode没有想像的那么安全.
对比java和C#就能知道,类似字节码的这种机制,被反编译就是市场需求的问题.
BPC完全脱离Zend,将PHP最终编译成C,要想从可执行文件反汇编出PHP是不可能的.
和 PHP 高度兼容
说一行代码不用动那是夸张,对于bob-parser来说,需要将其从web方式运行改由cli运行,其实也就是新写一个入口文件,并且这个入口文件本身也还能用php执行,这样方便对比解析结果是否完全一致,如果不一致,那说明编译器有问题.
得益于前期开发BPC时phpt测试做的扎实,bob-parser的测试用例全过,也就是说一个简历文件,用php执行得到的结果和用BPC编译出来的可执行文件运行得到的结果是完全一致的,一个字符不差.
扩展开发极其容易
bob-parser除了PHP代码之外,还依赖一些外部程序,这些外部程序是因为之前搞不定PHP扩展开发,所以才独立出去的,现在扩展开发容易了,这些外部程序能开发成扩展的都开发成扩展了,这也使得bob-parser能够最终只生成一个可执行文件.
在源码保护和高度兼容的前提下,才会考虑性能和内存占用
编译器本身内置软件授权机制
对于能够本地部署的程序来说,做到源码保护只是第一步,尤其是像bob-parser这样的工具类程序来说,只有一个可执行文件,方便了部署方便了调用,如果没有可靠的授权机制,出去了一份,就等于全都出去了.
不管什么样的授权,最终在代码里肯定有一处if判断,如果满足条件,继续执行,否则报错退出.
因此,只要定位到这个if判断,让它恒为true,授权限制就绕过了.
曾看到过一篇文章,讲的是如何去除试用版ioncube_encoder_xxx_64的14天限制,对二进制可执行文件做处理的工具都是现成的.
一个简单的思路就是在PHP代码里添加多处授权判断以增加安全性,但这样做一是影响正常逻辑,二是需要手动维护.
BPC在编译过程中支持随机插入授权判断,大大提高了安全性.
本作品采用《CC 协议》,转载必须注明作者和本文链接
帖子已从回收站中救出来
@Summer
BPC 在编译过程中支持随机插入授权判断,大大提高了安全性. 这个不错