PHP代码加密面面观

访客5年前黑客文章602

年代在开展,在PHP平台上开发的开发者越来越多。“全国熙熙,皆为利来;全国攘攘,皆为利往”,许多开发者运用PHP开发他们的商业产品,并将其进行二次分发。惋惜由于PHP的机制受限,开发者们只能分发源代码,这对他们的版权维护极为晦气,导致PHP界出现出了不少加密产品。笔者最近想了想,在这儿对这些加密产品进行逐项介绍,以飨各位读者。
假如你没有任何技能布景,笔者引荐你直接拉到本文最后来选择一款合适你的加密。
壳”加密”
这一类“加密”包含:
无扩展加密:phpjiami、zhaoyuanma的免费版别等
有扩展的加密:php-beast、php_screw、screw_plus、ZoeeyGuard、tonyenc等市面上简直一切的开源PHP加密扩展。
把它们称为“加密”算是看重,它们真的真的只能被称为“自解压压缩包”,像是PHP界的WinRAR,或许是UPX、ASPack。笔者写到这儿时暂时停顿了一下,笔者以为把这种“加密”和UPX这些壳混为一谈是对UPX的 *** 。由于任何一个较为了解PHP的人,都能够在一天之内写出这种等级的加密,而不需求任何额定的常识。
这一类自解压压缩包的一起思路是:
加密:直接加密整个PHP文件,不对原始PHP逻辑作出改动。无扩展的加密将给用户一个运转时环境(“壳”)和加密后的数据,有扩展的加密将直接取得加密后的数据,并要求用户在运用时装置对应的扩展。
解密:壳或扩展先承认环境有没有被调试的危险,假使没有,就直接在内存中解密出整个PHP文件,并运用eval或相似 *** 直接运转。
以下是笔者写的一个简化的代码示例:
  $code = file_get_contents('待加密的PHP');
  $code = base64_encode(openssl_encrypt($code, 'aes-128-cbc', '密钥', false, 'IV'));
  echo ";
信任读到这儿的各位都能意识到,对这一类“壳加密”来说,是有全能的“解密”计划的。不需求知道数据的加密算法究竟是什么,由于实在代码在履行时总会被解密出来,各位只需求知道PHP究竟履行了什么,从这儿拿出代码。
不管是eval、assert、preg_replace('//e'),仍是这类PHP加密扩展,想要动态履行代码就必须经过zend_compile_string这一个函数。只需求编写一个dll/so,给zend_compile_string挂上“钩子”,就能直接拿到完好的代码。笔者觉得具体讲这种加密是糟蹋本文空间,给出几篇文章作为参阅:
https://www.leavesongs.com/PENETRATION/unobfuscated-phpjiami.html
http://blog.evalbug.com/2019/09/21/phpdecode_01/
也有一些网站能够在线解密,例如国外的UnPHP:https://www.unphp.net/
而假如你不会C,或许不想从PHP底层来破解,也有不少的伸手党战略,像是这篇针对phpjiami / zym的破解计划 https://www.52pojie.cn/thread-693641-1-1.html,可从中了解这些壳的根本运转 *** 。
有扩展加密中,php_screw因加密 *** 太弱,简略被已知明文进犯(举例:大部分PHP文件的最初均为)推测出密钥。其他的加密就都需求手动逆向,过于费事,直接运用通用计划来反而是更简略的破解 *** 。
别的,还有一部分加密供给了一些附加功用。例如phpjiami供给的防SQL注入和拜访操控功用。

假如真的信任SQL注入能靠这些“加密”来防护,那也不免too young too simple。这些防SQL注入没有任何用途,经过关键字过滤反而简略阻拦正常的用户输入。信任它们,还不如在网站前面加一层360网站卫兵、百度云加快。正确的防SQL注入的 *** 应当是在用户输入处运用mysqli_real_escape_string,或许运用PDO的预处理查询,或许运用各类ORM结构。
 
混杂加密
这一类加密才刚刚上了加密的道。
在国内用的最多的是EnPHP,开源的有php-obfusactor。当然,还有一种更强壮的开源加密yakpro-po,笔者猜想,微擎的混杂算法便是根据这个来修正的。它们的根本原理是:
移除代码内的变量,将其替换为乱码或l1O0组合成的变量名。由于只改动变量名,大部分情况下并不会对代码的逻辑产生影响。
对PHP代码自身的明文字符串,像是变量名、函数名这些进行替换。
必定程度上改动代码原始逻辑。
这一类加密的开发门槛就相对高些了,需求了解关于笼统语法树(AST)的操作。
代码混杂关于一般的防破解来说强度是满足的,Google 在 Android 上即默许供给了 ProGuard 这一明文符号混杂东西,在PHP上相同,假如变量名、函数名等被混杂,的确能够添加破解难度,对应的东西是php-obfusactor。不过,这对一般的逆向造不成什么影响,批量替换变量名就能够处理了。EnPHP和yakpro-po相对会费事一些。
EnPHP的特征是,将一切的函数名都提取到一个常量池,在必定程度上修正了变量名,不过不改动代码逻辑。

这种加密完成难度不高,只需了解对php-parser的操作即可写出来。笔者顺手花了十分钟写了一个,共享给我们:
use PhpParserLexer;
use PhpParserNode;
use PhpParserNodeExpr;
use PhpParserNodeTraverser;
use PhpParserNodeVisitorNameResolver;
use PhpParserNodeVisitorAbstract;
use PhpParserParser;
use PhpParserParserFactory;

[1] [2] [3] [4]  黑客接单网

相关文章

专业接单黑客联系方式(24小时接单的黑客接单)

今后,微信、微博聊天记录可以正式作为诉讼证据。根据该决定第14条,电子数据包括以下信息和电子文件: 网页、博客、微博等网络平台发布的信息; 手机短信、电子邮件、即时通信、通讯群等网络应用服务的通信...

黑客接单业务_好卷升级可以找黑客刷吗-哪里找黑客技术人才

「黑客接单业务_好卷升级可以找黑客刷吗-哪里找黑客技术人才」DMG671548iOS渠道的DMG压缩文件,内部包括歹意装置程序本文假定你知道这些基本知识:3、使用发掘鸡和一个ASP木马:-Rage-p...

外星龙侦探网,找黑客找回账号,找黑客上那个网

下图是样本履行之后加载的inf文件被intval处理过了,不能注入再google一下登陆地址inurl:xxx.ph intext:login(国外站点后台地址不好找,或许是我太菜了),发现两个疑似页...

免杀远控,找黑客帮我盗回球球号,找黑客能改驾驶处罚

其间域名member.094n.com引起了咱们的留意。 帐号密码为 ‘or’='or’定论}在取得一些登陆权限之后取得meterpreter shell的办法。...

淘宝上怎样才能找到黑客接单服务_找黑客盗取别人qq密码

网页挖矿进犯那么,我这儿收拾了其他的几种电话号码走漏办法:要回答这个问题并不简单,咱们每个人都只能看到其间的一个部分,而且或许永久无法实在了解某些进犯的动机或其背面的展开。 尽管如此,在进犯发作之后,...

保存登录信息的Cookie加密技能

 一切需求账户登录的website 根本都会想到这样一个问题, 怎么坚持用户在必定时间内登录有用。 最近自己就在项目中遇到这样的需求,某些页面只能Admin账户登录后拜访, 当登录Admin账户后怎么...