美文网首页
phar打包PHP代码

phar打包PHP代码

作者: IronMan999 | 来源:发表于2019-07-10 08:57 被阅读0次

阿里云服务器3折开售(点此直达)

image
前一阵子,参加了一个阿里的PHP技术小会议。主讲人周梦康,分享了一下 phar 这个东东。
之前,还真没咋注意。
正好今儿有时间有兴趣,自己也研究一下。梳理一下流程。
image.png
开始咯。。。。

首先要做的一件事就是...等等。。。好像忘记说了一个东西。
自从 php5.3开始,就集成了 phar 这个东东。但是,但是,但是!!!这玩意儿默认是关闭的。。。


clipboard.png

找到 自己的 php.ini 文件,进入,修改 【phar】phar.readonly 为 off 。它默认是 on。


kengdie.png

寻找自己的 php.ini 找不到的话,在自己的控制台, php -ini | grep ini

phpini.png

不罗嗦了,开始,开始~~~ 真的开始~~~

1.创建a.php文件

<?php
class a{
        private $b='1';

        public function setB($b1){
                $this->b = $b1;
        }

        public function prf(){
                echo 'prf function prfffff'.$this->b;
        }
}

2、创建c.php文件,实例化类 a

<?php
include('a.php');

$a = new a();
$a->prf();

$a->setB('bbbbbb');
$a->prf();

3、 将 a.php 的代码打包,并设置默认启动类

<?php
$phar = new Phar('a.phar');
$phar->buildFromDirectory(dirname(__FILE__));
$phar->setStub($phar->createDefaultStub('c.php','c.php'));
$phar->compressFiles(Phar::GZ);

4、在当前目录下,就会出现 a.phar 文件。此文件就是打包好的 phar 文件。此文件可以直接通过 php 运行


4.png

5、直接运行 phar 文件。可以看到,输出上面的结果了。


5.png
6、除此之外,此 phar 包文件,还可以通过代码解析,然后和java类似的方式,进行 Jar 包内的方法调用。而 phar 亦可以达到同等的效果。
<?php
//include('a.phar'); // 这种方式,会将a.phar包内的所有的类都加载进来。类似于 java的 import com.a.*的这种效果。将不需要的也导入进来。
真的没必要
include('phar://a.phar/a.php'); //需要啥,就从包内加载啥。很方便,又简洁
$d = new a();
$d->setB('dddd');
$d->prf();

效果:


cd.png

这玩意儿,简直是 做兼职啥的神器啊……不给钱,就不给你源码……


hahjpeg.jpeg

后来又 vim 看了一下, a.phar 里面的内容。
里面全都是

luanma.png

这也算认为是一种混淆了吧~~~~
就是不知道,其混淆程度能不能达到 android 的程度~
android 的原生混淆,亦有各种反编译的存在。但是一旦通过各种第三方比如360,加壳混淆打包等处理一下,基本就反编译无望了。这也应该是目前大部分人在用的吧。

phar 这个玩意儿,不知道能不能反编译回来~拿到源码或者大概能看懂的代码。

有时间再研究吧。就到这里了。

相关文章

  • phar打包PHP代码

    阿里云服务器3折开售(点此直达) 首先要做的一件事就是...等等。。。好像忘记说了一个东西。自从 php5.3开始...

  • composer.bat 详解

    comoser.phar 是php 代码 ,当我们执行 ‘php composer.phar’ 时就是在使用com...

  • Easyswoole源码分析-9-phar

    1. 简介 PHP5.3之后支持了类似Java的jar包,名为phar。用来将多个PHP文件打包为一个文件。 2....

  • Phar的一些利用姿势

    Phar绕过上传 test.php 压缩后改后缀名为jpg index.php Phar反序列化漏洞 test.p...

  • 「php化整为零系列」十、Phar

    该系列我只写我的理解,非官方解释,如不够专业请见谅 PHAR: 即 PHP Archive,将这个应用程序打包成单...

  • linux 安装 composer

    下载 composer.phar 文件(需要安装好PHP) 将 composer.phar 移动到 /usr/lo...

  • Pear安装和PHPDOC使用

    首先你需要下载go-pear.phar 地址:http://pear.php.net/go-pear.phar。 ...

  • PHP指定版本运行composer

    通过使用指定版本的php来运行composer.phar 后面加上composer命令来使用 .phar是什么格式...

  • php phar LFI

    0x01. 什么是phar 如果你之前开发过Java程序,我相信你肯定知道Jar文件(Jar是Java ARchi...

  • Composer基本安装与使用

    一、下载composer.phar php -r "readfile('https://getcomposer.o...

网友评论

      本文标题:phar打包PHP代码

      本文链接:https://www.haomeiwen.com/subject/gsxfkctx.html