开源的 PHP 扩展加解密 Screw Plus

BSD
PHP
跨平台
2016-06-29
regpandaplot

Screw Plus是一个开源的php扩展,作用是对php文件进行加密,网络上提供php加密的服务很多,但大多都只是混淆级别的加密,被人拿到加密文件问只要有足够耐心就能破解,与之不同的是,Screw Plus采用扩展来加解密,而且是全球金融业流行的高强度AES256加密,除非破解了服务器,否则黑客拿到了加密文件也只是一堆乱码。

同一个加密级别的有ioncube和官方的zend guard,但这两款都是收费的,一年至少数千元的费用并不值得普通开发者去尝试,而使用Screw Plus,你不需要多花一分钱。

下面以LNMP一键安装环境为例演示下Screw Plus的配置:

首先克隆一份代码到服务器

        git clone https://git.oschina.net/splot/php-screw-plus.git

进入项目目录,然后执行php的phpize文件,phpize是官方提供的可执行文件用于动态生成扩展开发环境,一般在php的bin目录下可以找到。lnmp的phpize在/usr/local/php/bin/phpize

        /usr/local/php/bin/phpize

        Configuring for:

        PHP Api Version:        20100412

        Zend Module Api No:      20100525

        Zend Extension Api No:  220100525

执行成功后可以看到当前的php api版本,扩展api版本等。下一步就可以开始配置了。配置命令为 ./configure --with-php-config=[php-config], [php-config]一般也在php的bin目录下,写绝对路径就可以了。

        ./configure --with-php-config=/usr/local/php/bin/php-config

如果没报错,说明配置成功了,可以开始下一步编译了。

编译之前,我们可以修改加密的key,打开php_screw_plus.h可以看到开头就是 #define CAKEY "..." ,把里面的值改为一个足够复杂的key,最好16位以上,比如:9mqss6q7WsBpTMOZ

        vi php_screw_plus.h

修改完毕之后,直接开始编译,执行make命令,如果最后显示Build complete.说明编译成功,扩展在modules里面,如果报错请根据提示进行修复,然后make clean之后重新编译。

        make

        ...

        Build complete.

上面我们编译的是解密程序,而加密程序也需要我们手动编译一下,进入tools目录执行make命令即可。如果没有报错,则扩展就全部编译完成了。

        cd tools/ && make

然后需要把扩展的路径加入到php.ini中,你可以把modules/php_screw_plus.so复制到php扩展目录也可以直接在ini中加入绝对路径,我一般倾向于绝对路径这样修改编译了扩展也不需要重新复制过去。

        vi php/etc/php.ini

        加入绝对路径例如

        extension=/home/php_screw_plus-1.0/modules/php_screw_plus.so

然后重启php服务 这时可以放个php文件输出phpinfo信息,如果看到以下提示说明扩展生效了。


下面还有最后一步,加密程序。

在扩展的tools目录,执行./screw [路径],[路径]可以是单个文件也可以是文件夹,然后就可以实现加密了。


加密完成后查看源码,可以发现除了开头的几个英文字符外,其余的都成了乱码。


但是打开网站,php运行正常,如果没有加密一样。经过测试,解密速度大约为100M每秒,对php自身的性能损失非常小,一般不到20毫秒。

Screw Plus还有个功能,可阻止执行未经许可的php文件,这样黑客就算上传了代码也然并卵。

同样在php_screw_plus.h里修改,把STRICT_MODE后面的值改为1,然后make clean && make重新编译并重启php,然后打开之前加过密的网站,执行正常,但是我们随意上传个明文的php文件,结果是一片空白。

原因是未加密的php文件头部不包含识别key,扩展会返回空内容,就算黑客获取了key并加入也没用,内容会被解密成乱码仍然无法执行。经过Screw Plus的保护,即使网站整站被下载或被上传了恶意代码,也无法对网站造成损失。

的码云指数为
超过 的项目
加载中

评论(0)

暂无评论

暂无资讯

暂无问答

php screw加密

Download http://sourceforge.net/projects/php-screw/ Installation(参照压缩包内README.en) (1) Unpack php\_screw-1.5.tgz. (2) Customize encryption / decryption vi my\_screw.h c...

2016/02/18 16:21
59
1
如何加密PHP文件

如何加密PHP文件

2014/06/02 14:16
32
0
PHP源文件加密工具PHP-SCREW

由于php代码是以文本方式存放于服务器端,在与外部公司合作时,很容易被读取到源代码,而这时候就需要对PHP源码进行加密。现在商业版本的加密工具有: 1.Zend Guard 属于Zend公司的 2.ionCub...

2014/06/29 22:52
177
0
在Windows上编译PHP扩展组件的问题

这两天需要编译一个PHP扩展来实现特定的功能,参考了网上N多文章,最后发现两件宝贝,其一是php_screw,另外一件是Cygwin。网站推广 首先编译php_screw,以便有个感性的印象,编译通过没问题...

2012/01/13 15:29
63
0
co-rotating twin screw extruder manufacturer

Nowadays the capital operation of WPC is accompanying spiral extruder, because it delivers abstracts relying on the assumption of absolute displacement and accepting no burden a...

2012/07/16 11:30
22
0
php加密代码破解

php加密代码破解,有php本身的函数加密、php第三方扩展(如screw)加密、php官方的zend加密。 http://yoursunny.com/t/2009/PHP-decode/ http://yoursunny.com/t/2009/PHP-decode-2/ 威盾加密后...

2015/09/18 15:37
287
0
twin screw extruders machine

In contempo years, mid- and small-size biotechnology companies are developing at a accelerated pace. There are added than 1,000 such entities civic at present, and added than 30...

2012/07/05 11:30
13
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部