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的几个特性

  1. 100%源码保护

    PHP的源码保护目前最强的应该就是基于opcode的了,但据我所知,现在至少有两个可用的opcode反编译器,所以opcode没有想像的那么安全.

    对比java和C#就能知道,类似字节码的这种机制,被反编译就是市场需求的问题.

    BPC完全脱离Zend,将PHP最终编译成C,要想从可执行文件反汇编出PHP是不可能的.

  2. 和 PHP 高度兼容

    说一行代码不用动那是夸张,对于bob-parser来说,需要将其从web方式运行改由cli运行,其实也就是新写一个入口文件,并且这个入口文件本身也还能用php执行,这样方便对比解析结果是否完全一致,如果不一致,那说明编译器有问题.

    得益于前期开发BPC时phpt测试做的扎实,bob-parser的测试用例全过,也就是说一个简历文件,用php执行得到的结果和用BPC编译出来的可执行文件运行得到的结果是完全一致的,一个字符不差.

  3. 扩展开发极其容易

    bob-parser除了PHP代码之外,还依赖一些外部程序,这些外部程序是因为之前搞不定PHP扩展开发,所以才独立出去的,现在扩展开发容易了,这些外部程序能开发成扩展的都开发成扩展了,这也使得bob-parser能够最终只生成一个可执行文件.

  4. 在源码保护和高度兼容的前提下,才会考虑性能和内存占用

  5. 编译器本身内置软件授权机制

    对于能够本地部署的程序来说,做到源码保护只是第一步,尤其是像bob-parser这样的工具类程序来说,只有一个可执行文件,方便了部署方便了调用,如果没有可靠的授权机制,出去了一份,就等于全都出去了.

    不管什么样的授权,最终在代码里肯定有一处if判断,如果满足条件,继续执行,否则报错退出.

    因此,只要定位到这个if判断,让它恒为true,授权限制就绕过了.

    曾看到过一篇文章,讲的是如何去除试用版ioncube_encoder_xxx_64的14天限制,对二进制可执行文件做处理的工具都是现成的.

    一个简单的思路就是在PHP代码里添加多处授权判断以增加安全性,但这样做一是影响正常逻辑,二是需要手动维护.

    BPC在编译过程中支持随机插入授权判断,大大提高了安全性.

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 5
你看我吊吗啊

帖子已从回收站中救出来

2年前 评论
heguangyu5 (楼主) 2年前
你看我吊吗啊 (作者) 2年前
你看我吊吗啊
2年前 评论

BPC 在编译过程中支持随机插入授权判断,大大提高了安全性. 这个不错

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!