HMAC(散列消息认证码) 使用密钥和散列函数对消息进行加密,并用结果生成一个数字签名。
PHP开放源码和跨越平台,PHP可以运行在WINDOWS和多种版本的LINUX上。它不需要任何预先处理而快速反馈结果,它也不需要mod_perl的调整来使您的服务器的内存映象减小。PHP消耗的资源较少,当PHP作为ApacheWeb服务器一部分时,运行代码不需要调用外部二进制程序,服务器不需要承担任何额外的负担。
0x01 背景 团队大佬在做PHP代码审计的时候发现PHP代码是被混淆过的。虽然可以通过自己手动解密可以还原原先的PHP代码,但是混淆过程比较复杂且自己写脚本还原非常麻烦。所以,我这边通过PHP底层的操作对混淆后的PHP代码进行还原。 0x02 PHP代码混淆原理 PHP代码混淆一般来说有两种方法: 需要PHP扩展 无需PHP扩展 本文我们主要讲解无需PHP扩展的代码混淆的解密。大多数的无需扩展的php代码混淆原理上都是使用eval进行代码的执行。如果我们能够得到eval函数的参数,即可获得解密后的代码
现在很多PHP程序都需要ZendOptimizer环境,但是ZendOptimizer在PHP5.2之后已经被支持,那怎么办,Zend也不会这么做,原来PHP5.3开始ZendOptimizer正式改为Zend Guard Loader。 Zend Guard Loader的发布,而且Zend Optimizer不会再更新,并且由于差异很大使用Zend Guard加密代码时将提示你是否使用php5.3,如果使用5.3那么代码就无法在php5.2上运行。 Zend Guard Loader安装说明
现在很多PHP程序都需要ZendOptimizer环境,但是ZendOptimizer在PHP5.2之后已经被支持,那怎么办,Zend也不会这么做,原来PHP5.3开始ZendOptimizer正式改为Zend Guard Loader。 Zend Guard Loader的发布,而且Zend Optimizer不会再更新,并且由于差异很大使用Zend Guard加密代码时将提示你是否使用php5.3,如果使用5.3那么代码就无法在php5.2上运行。 Zend Guard Loader安装说明 1.下载Zend Guard Loader包。(官方地址:http://www.zend.com/en/products/guard/downloads) Linux: x86:http://downloads.zend.com/guard/5.5.0/ZendGuardLoader-php-5.3-linux-glibc23-i386.tar.gz x64:http://downloads.zend.com/guard/5.5.0/ZendGuardLoader-php-5.3-linux-glibc23-x86_64.tar.gz Windows: http://downloads.zend.com/guard/5.5.0/ZendGuardLoader-php-5.3-Windows.zip 2. 并提取ZendGuardLoader.so(Linux)或ZendLoader.dll(Windows)上传到服务器。 3. 加载ZendGuardLoader,配置PHP.INI 例子: zend_extension=C:\web\PHP\ext\ZendLoader.dll zend_loader.enable=1 zend_loader.disable_licensing=0 zend_loader.obfuscation_level_support=3 zend_loader.license_path= 下面逐一说明: 注意windows版的只支持NTS(非线程安全)版的PHP5.3,即phpinfo中Thread Safety为disabled的! 在你的php.ini文件中添加以下行: Linux和Mac OS X:zend_extension=<ZendGuardLoader.so的绝对路径> Windows的非线程安全的:zend_extension=<ZendLoader.dll的绝对路径> 4. 添加下面这行加载ZendGuardLoader: ;启用加载编码脚本。默认开启 zend_loader.enable=1 5. 可选:配置ZendGuardLoader ;禁用检查授权(出于性能原因) zend_loader.disable_licensing=0 ;配置混淆水平 0 – 不支持混淆 zend_loader.obfuscation_level_support=3 ;配置寻找授权文件的路径 zend_loader.license_path= 6. 如果你同时使用Zend debugger,请保证加载Zend guard Loader后再加载Zend debugger 7. 如果你同时使用Ioncube loader,请保证加载Ioncube loader后再加载Zend guard Loader 8. 重启Web服务。 如果在phpinfo中看到如下内容(不同的版本可能会有所不同): This program makes use of the Zend Scripting Language Engine:Zend Engine v2.4.0, Copyright (c) 1998-2011 Zend Technologies 说明安装已经成功!
我们知道很多商业php程序为了保护源码或者设置限制会采取源码加密,常见的一般有Zend、微盾(威盾)、ionCube。其中微盾是不需要服务器组件支持的,所以也很好破,网上文章很多,大家搜搜就可以得知。而Zend和ionCube是需要组件支持的,所以在破解上难度会非常大,或者说根本无法破解。 本文可轻松快速破解Ioncubed files [v6][v7]及Zend Guard files [v5]加密文件(非通过特殊处理的,特殊处理过的基本没戏) 本文并不赞成破解,下文提供工具方法仅限测试使用,Sudu
团队大佬在做PHP代码审计的时候发现PHP代码是被混淆过的。虽然可以通过自己手动解密可以还原原先的PHP代码,但是混淆过程比较复杂且自己写脚本还原非常麻烦。所以,我这边通过PHP底层的操作对混淆后的PHP代码进行还原。
php做为一门当下非常流行的web语言,常常看到有人求解密php文件,想当年的asp也是一样。一些人不理解为什么要混淆(加密),甚至鄙视混淆(加密),在我看来混淆加密代码可以用来防一般的小人,会起到一定的保护作用。 加密的原因: 1. 保护代码,防止别人剽窃 2. 保护文件,防止别人发现/查杀(php木马 or 后门) 3. 剽窃了他人代码防止被发现 4. 其他商业或非商业目的 ---- 我一直都比较关注代码的加解密,从简单eval base64,gzcompress,gzinflate 到 威盾,Zend
php做为一门当下非常流行的web语言,常常看到有人求解密php文件,想当年的asp也是一样。一些人不理解为什么要混淆(加密),甚至鄙视混淆(加密),在我看来混淆加密代码可以用来防一般的小人,会起到一定的保护作用。
这两天准备升级一个网站项目,新项目基于PHP并进行了ZendGuard加密,需要在PHP5.6版本中运行
2019年,PHP 代表超文本预处理器(Hypertext Pre-processor)是非常流行的 Web 服务端编程语言,小编今天就来和大家一起盘点7款顶级的 PHP 框架。
最近给公司部署服务器的时候发现他们提供的服务器是CentOS6.4系统的,装好系统和相关服务httpd,mysql,php,一跑代码,发现php5.3中的zend加密不能用,安装Zend Guard Loader后仍旧不能使用,才发现是程序中只支持Zend Optimizer解密。于是只得查找php5.2的版本。赶紧上网找一下,有没有yum安装php5.2的。 还真被我找到了。只好修改yum源。方法如下: 1.环境 centos6.4 x86_64 2.添加源 wget -q -O - http://www.atomicorp.com/installers/atomic | sh 3.排除php5.3的包,我们只需要php5.2.17
注:本篇LANMP安装中遇到的问题不代表大家都有 本次安装:1.Apache 2.PHP 3.MySQl 4.Zend 5.PureFTPd 6.phpMyAdmin 如果大家只对其中某个环境需求安装,可参考我的下一篇文章(强烈推荐)
用PHP编写好的源码,如果不想被其它人直接利用怎么办?首先想到的是加密,但现在除了Zend 5加密还比较难破解外,其它的加密方式都不堪一击。即使不破解,不怀好意的人同样可以使用你的源码搭建一个和你一模一样的一个网站。这岂不是使你的劳动成果白白的被别人占为己有。下面介绍一种方法即限制域名的方法来保护你的源代码不被直接拷贝运行。
虽然7升级来已经很久了,可能大家项目中都已经在使用,但是一些面试者的回答让我不算满意
实际加密算不上,具体实现思路就是把代码base64加密,然后对base64里的字符串进行字符串映射(随机生成字典混淆)然后eval执行 这种百分之百能被破解还原
在Debian Linux系统中安装PHP Ioncube加载器。 Ioncube用作PHP应用程序的加密和解密实用程序,通过它我们可以保护数据安全。 它还可以限制PHP应用程序执行未授权。 它还有助于加速提供的页面。 IonCube加载器(Ioncube Loaders)用于在Web服务器上运行时解码编码文件。 在官方网站上阅读更多详情。 本教程将帮助您在Debian Linux系统安装PHP Ioncube Loaders模块。
有时候我们在使用php和nginx进行开发的时候,会出现这样的情况,明明扩展已经安装,但是就是无法调试成功。这个时候我们就要耐心去分析问题产生的原因。
php MIME,http,html MIME:MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型 浏览器:插件,或是调用外在程序。 动态网站:根据客户端请求,服务器调用外界程序运行脚本生成文档在返回给客户端。返回不同结果。根据客户端不同请求做出不同响应。 客户端动态:服务器端开发一段程序,这段程序的源程序下载到客户端本地并且在客户端本地的运行环境中运行。并通过浏览器将执行结果显示出来。 防止恶意代码,一般不使用。Activex,apple
[14-Feb-2012 09:21:01] PHP Warning: Module ‘json’ already loaded in Unknown on line 0
盼望以久的 PHP 7.0 正式版,终于在今天发布了! 官方给出的新特性如下: PHP 7.0.0 comes with new version of the Zend Engine with fea
前几天在网上看到一份代码,打开来看,里面都是类似下面的十六进制字符串。一脸懵逼,啥情况,我万能的sublime text 打开居然是十六进制文件,而且文件居然还能运行?
在.net之前,微软的是ASP。在微软的大力推广下,其看起来还是很有前途的。但现在,微软想推广asp.net,而ASP成了其障碍。所以从Windows Server 2003开始,微软对ASP做了许多限制,比如上传文件不能超过200KB等。
LAMP 架构是目前成熟的企业网站应用模式之一,能够提供动态 Web 站点服务及其应用开发环境。 LAMP 是一个缩写词,具体包括: 1、Linux 操作系统 2、Apache 网站服务器 3、MySQL 数据库服务器 4、PHP/Perl/Python 网页编程语言 这四个组件都是同类中的佼佼者,体现在: 1、成本低廉 2、可定制 3、易于开发 4、方便易用 5、安全和稳定 在构建 LAMP 平台时,各组件的安装顺序依次为:Linux、Apache、MySQL、PHP。其中 Apache 和 MySQL 的安装没有严格顺序;PHP一般放在最后,负责沟通 web 服务器和数据库系统。 https://blog.51cto.com/14227204/2424170 Apache 服务安装 https://blog.51cto.com/14227204/2425596 MySQL 服务安装(供参考,可自行选择) https://pan.baidu.com/s/1bvWgs6--P_ja2QNf6E7IrQ 安装所需源码包 提取码: u3me 准备工作: 照旧先检查一下系统当前有无 rpm 安装的PHP包 rpm -qa | grep php ,如果有卸载掉 首先我们需要安装几个依赖包:
曾几何时php一不小心闯入了我生活,php语法竟然和C语言那么莫名的相似,这是最初php给我的感受,当接触的php时间越来越多的时候,php也没有那般生涩难懂,但是偶尔一些的新的php 设计思想,也会思考许久,不知是从什么时候开始了php另一个世界。我想应该是从那次的类型转换开始的,"1e12"字符串类型在转化为数字类型变量时,不同的php版本下转换结果截然不同,有的就变成了数字1,有的却可以正常的识别为科学计数法10^12,在这个地方就已经悄悄的埋下了一枚种子。
APC全称Alternative PHP Cache,可选php缓存,包括opcache及用户变量缓存。
需要注意的是,trait的继承顺序: 来自当前类的成员覆盖了 trait 的方法,而 trait 则覆盖了被继承的方法 当多个trait被同一个类使用的时候,会出现方法冲突的情况,使用关键词insteadof解决 示例代码:
在Github上发现了一个开源的CTF平台,界面很好看,而且是php写的,所以决定搭建一下折腾折腾。
minicom minicom 是一款启动速度快,功能强大的串口终端调试工具,当然缺点就是纯字符界面,没有图形界面的调试工具看起来直观方便,但是它功能十分强大,并且在一些没有屏幕的嵌入式主板上运行颇有用处。 cutecom Linux系统可视化串口应用软件,使用上与Windows系统串口调试工具。 picocom 效果上类似 minicom 的精简版,设置比较简单,还可以有背景颜色。
在Internet中,要提供一台功能完整、可扩展性强的企业网站服务器,不仅需要有HTTP服务器软件、数据库系统,也离不开动态网页程序的支持。LAMP平台很好的把这些服务,结合到了一起。作为企业运维人员是必须了解并且熟练掌握的。
本文实例讲述了tp5框架使用cookie加密算法实现登录功能。分享给大家供大家参考,具体如下:
PHP,或超文本预处理程序,是一种开源的服务器端脚本语言。它也非常受欢迎——截至2018年10月,几乎80%的网站都在使用PHP。
导读: 说到php,一句顺口溜流传已广:php是世界上最好的语言;还有一个特别的谐音名字:拍xx片。至于php是不是世界上最好的语言,这个有意思的口号我们也探究一下他的来源。
实验要求 1、构建PHP运行环境,实现LAMP协同架构,前提条件是服务器中已经编译好了Apache HTTP Server和MySQL数据库,(编译安装apache和编译安装mysql 请查看公众号L
当PHP脚本被Zend Engine解析的时候,Zend Engine会对脚本进行词法、语法分析,然后编译成opcode来执行,类似JVM中的字节码(byte codes),只不过opcode不会像class文件那种存在磁盘,而是在内存中直到PHP的生命周期结束。
PHP 中的 class、interface、trait 在底层均以 zend_class_entry 结构体实现
遇到的问题 php -v Zend Guard Loader requires Zend Engine API version 220090626. The Zend Engine API version 220121212 which is installed, is newer. Contact Zend Technologies at http://www.zend.com/ for a later version of Zend Guard Loader. PHP 5.5.7 (cli) (buil
函数的前半部分主要还是对SG宏的成员变量进行初始化。后半部分先是调用了sapi_module_struct内部实现的activate函数,又调用了input_filter_init函数,但是在CLI模式并没有实现这两个函数,只是返回了NULL。代码如下:
一直以来,横观国内的PHP现状,很少有专门介绍PHP内部机制的书。呵呵,我会随时记录下研究的心得,有PHP
所以一个zval占用16字节。相应php5中,一个zval的大小为48字节,的确是巨大的提升。
示例中的代码XtOffsetOf(zend_string, val)表示计算出zend_string结构体的大小,而len就是要分配字符串的长度,最后的+1是留给结束字符\0的。也就是说,分配内存时不仅仅分配结构体大小的内存,还要顾及到长度不可控的val,这样不仅柔性的分配了内存,还使它与其他成员存储在同一块连续的空间中,在分配、释放内存时可以把struct统一处理。
本节将会通过实现一个简单的PHP扩展类,介绍在PHP扩展开发过程中如何实现面向对象。
接下来,我们对这三个步骤展开,并且辅以一个名为demo_array()的函数作为例子,该函数返回一个 我们在扩展函数中创建的数组作为返回值。
PHP代码在语法解析阶段直接生成了ZendVM指令。zend_language_parse.y中生成opline指令
公司开发使用PHP,技术框架使用Laravel。最近线上出现一个问题,就是上线之后,每次都会出错。查看出错原因,是composer安装的第三方出现class not found。因为这个问题,在线下使用Lumen框架的时候,遇到过,查找问题原因是因为依赖的composer包中composer.json中的”autoload”:{“psr-4”:{}}书写格式问题。解决方法使用命令:composer dump-autoload -o;
今天安装了 xdebug、xhrpof等分析工具, 然后在运行相关命令时出现了 Segmentation fault(分段错误), 一般出现此错误大部分 内存越界指针错误引起的原因, 并非 php 代码本身原因. 出现此问题大部分因为底层拓展导致。
五一期间,把 VPS 上的 PHP 加速组件换成了 Zend Opcache,打开页面的速度有了非常明显可以直接感受到的提升。这里顺便做一下小结,作为备忘。
程序是代码和数据的集合,进程是运行着的程序;操作系统需要为进程分配内存;进程运行完毕需要释放内存;内存管理就是内存的分配和释放;
首先,我们需要对传给接口的参数进行解析。解析参数需要使用PHP提供给我们的宏来完成,分别是开头的和结尾的宏:
注意这个的child[1],并不是表示是一个节点,类似于zval_string里面的val[1],节点地址连续分配在zend_ast结构末尾。根据 kind 类型转换为其他类型节点,具体的类型和对应的结构在/Zend/zend_ast.h里面定义。常用的下面两个节点类型
领取专属 10元无门槛券
手把手带您无忧上云