我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

php-screw-plus是一款用于php源码加密的扩展,这款php-screw-plus扩展的使用效果如何呢?那么,用php-screw-plus加密过的源码,还能不能被破解呢?如果可以,如何破解呢?为了达到"php代码是加密的,却能正常执行"的目的,php-screw-plus提供了很多加密功能。具体的使用方法,请参考本文。

苏南大叔:php加密扩展,php-screw-plus如何安装使用?如何破解? - php-screw-plus
php加密扩展,php-screw-plus如何安装使用?如何破解?(图4-1)

大家好,这里是苏南大叔的“程序如此灵动”博客,这里讲述苏南大叔和计算机代码的故事。本文讲述php源码加密扩展php-screw-plus。本文测试环境:centos@7.7.1908php@7.4.28php-screw-plus@0.11

扩展源码下载

php代码之所以会繁荣(泛滥),其中的一个主要原因就是:它的源码不是加密的。但是,这种情况已经逐渐有所改善,有很多开源的或者商业的php扩展,可以给php代码进行加密。在运行加密的php源码的时候,对应插件会对源码按照一定的算法进行还原(划重点、划重点、划重点)。

php-screw-plus是基于php-screw的二次开发,不过苏南大叔并没有实验过原版的php-screw的效果,所以这里也不好下结论。这个plus版本到底有什么更先进的地方,大家可以自行评判。

可以下载php-screw-plus的地方,有下面两个,看上去都是作者发布的。

苏南大叔:php加密扩展,php-screw-plus如何安装使用?如何破解? - gitee
php加密扩展,php-screw-plus如何安装使用?如何破解?(图4-2)

作者写的说明文档:

修改配置

苏南大叔:php加密扩展,php-screw-plus如何安装使用?如何破解? - 配置文件
php加密扩展,php-screw-plus如何安装使用?如何破解?(图4-3)

官方推荐修改1:
在编译前,对php_screw_plus.h进行配置,主要修改以下参数CAKEY
当然,仅仅是拿来测试的话,您不修改也行,加密效果也是非常不错的,风险么,大家自己琢磨。

php_screw_plus.h

#define CAKEY  "FwWpZKxH7twCAG4JQMO"
//如果只允许执行加过密的php文件 设置STRICT_MODE为1
//set STRICT_MODE to 1 if you only want the crypted php files to be executed
#define STRICT_MODE 0
#define STRICT_MODE_ERROR_MESSAGE "ACCESS DENIED"
const int maxBytes = 1024*1024*2;

官方推荐修改2:
除了CAKEY之外,还有个STRICT_MODE,这个参数是用来控制是不是执行普通未加密的.php代码的。

  • 默认为0,就是说执行未加密的代码。
  • 改成1的话,那么网站内部根目录下,只能有加密的源码,未加密的源码一律不执行。官方的说法是:可以阻止黑客上传的木马文件。猛地听上去,还是挺有道理的。

扩展编译

这个扩展的编译过程,和其它的扩展编译过程几乎是一致的,没有啥太特殊的地方。苏南大叔的测试中,该款php-screw-plus扩展和php@8是不兼容的。所以,这里是配合php@7使用的。

命令如下:

unzip php-screw-plus-master.zip
cd php-screw-plus-master/
/home/php7/bin/phpize
./configure --with-php-config=/home/php7/bin/php-config
make clean
make
make install

注意事项:

  • 修改phpizephp-config的路径为你自己的实际路径。
  • 注意make clean,这个不做过多解释。

使用姿势

扩展根目录下面make install之后,.so文件就会自动出现在对应的extension扩展目录。对于本文的测试环境来说,这个路径就是:

/home/php7/lib/extensions/no-debug-non-zts-20190902/

正常使用的话,需要配置php.ini文件。这里不做过多描述,大家都知道。

extension=php_screw_plus.so

如果使用-d参数临时加载扩展的话,也是可以的。

/home/php7/bin/php -d extension=php_screw_plus.so 

可以使用-d-r参数联合,直接查看phpinfo()里面的信息。

/home/php7/bin/php -d extension=php_screw_plus.so  -r 'phpinfo();'|grep screw

返回内容类似如下:

php_screw_plus
php_screw_plus support => enabled
php_screw_plus version => 0.11

tools加密和解密

有些不一样的地方是,这款php-screw-plus还有个tools目录,需要单独make一下。

cd tools
make

然后就会在tools/目录生成个可执行文件./screw,就是用它对代码进行手工加密和手工解密的。

cd php-screw-plus-master/tools/
注意!!!这个加密解密结果是直接覆盖的!请自行备份原始数据!

苏南大叔:php加密扩展,php-screw-plus如何安装使用?如何破解? - 加密效果
php加密扩展,php-screw-plus如何安装使用?如何破解?(图4-4)

这里有两个文件作为对比测试,一个是原版的未加密的,另外一个是加密过的。经过运行可以发现:被加密的版本明显要比原版的要慢上一些,但是在可接受的范围内。

加密的基本姿势:

./screw [目录或文件] 
./screw /home/www/

解密的话,就是加个-d参数。

./screw [目录或文件] -d
./screw /home/www/ -d

php-screw-plus破解

这个问题么,网上的教程上写的都是异常复杂的,要祭出软件破解利器IDA,然后再修改这个那个的。其实,如果你懂得php内核的编译修改的话,php-screw-plus程度的破解那是异常容易的,并不需要改这改那,内核里面做拦截就可以了。相关文章:

当然,这里苏南大叔也不挡别人的财路了。如果大家有需要,这里也可以提供相关的破解服务。需要你提供对应的screw-plus.so文件,以及加密过的可运行的.php文件。

参考文献

总结

php代码的加密和解密,是个永恒的话题。随着php@8系列的发展,更会有一些更高级的加密手段出现的。记得到时候来看苏南大叔的博客,苏南大叔给大家带来php加密解密的故事。

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   php    phpsrc