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

前不久,苏南大叔得到了一份某系统的源码,功能上写的还是蛮有意思的。不过,有些功能上的限制。出于学习其思路的目的,苏南大叔研究了一下它的源码,研究过程中,获益匪浅。

本文中,虽然苏南大叔会描述如何破解该系统的过程,但是仅仅叙述一下相关思路,并不会涉及该php系统的名称及关键性的破解代码。当然关于这款源码的加密方式:魔方二代crane加密。这个也是苏南大叔自己瞎猜的,也许不是呢?对吧?哈哈。

苏南大叔:改写 class 方法逻辑,破解魔方二代加密的某 php 源码 - 魔方二代
改写 class 方法逻辑,破解魔方二代加密的某 php 源码(图4-1)

所以,大家还是有钱的帮个钱场,支持一下正版软件。

被加密的php文件描述

因为该php源码:“不需要任何的加密扩展,就可以直接运行”。所以,这个php代码的加密方式,目测为php混淆级别的加密概念。本以为可以通过关键函数hook手工diy逆向出来,但是仔细查看后,苏南大叔居然发现有些束手无策的感觉。

后来通过关键词VIRTUAL MACHINE ERROR : Access violation at address,找到了这个加密算法的源头是魔方加密,后来又通过某专业破解网站得知,该源码的加密方式是魔方二代crane的加密算法。魔方加密的网站地址如下,相关文件都是通过在线加密的。

苏南大叔:改写 class 方法逻辑,破解魔方二代加密的某 php 源码 - mofang
改写 class 方法逻辑,破解魔方二代加密的某 php 源码(图4-2)

关于魔方二代的加密,看了网上的几个相关帖子。看帖主的poc,都把汇编搬出来了,苏南大叔果断放弃。估计以苏南大叔的汇编水平,这东西一个月都搞不出来,所以只能另辟蹊径。

苏南大叔:改写 class 方法逻辑,破解魔方二代加密的某 php 源码 - mofangc
改写 class 方法逻辑,破解魔方二代加密的某 php 源码(图4-3)

通过对加密代码的格式化分析,大概看到了这个文件里面一共有两个类:一个是主体权限验证相关的类A,另外一个是dede模板的第三方解析类。类定义及类方法都是可以清晰看到的,但是方法的主体逻辑都是未知数。大概类似是这样的结构:

class A{
  function check_auth(){
    //下面是一堆密文
    //¥#!@#¥#@……%¥……%¥#……
    //`VIRTUAL MACHINE ERROR : Access violation at address
  }
}
class dede{
    //.....
}

如何修改被加密的php文件

这些php加密文件都有个普遍的共同特点,那就是编码未知。用普通常见的编辑器打开,都会提示编码错误之类的。如果强行打开,并且修改文件的内容的话,就会破坏文件主体,导致更加严重的后果。

那么修改的方式:苏南大叔给出两种方式,大家可以试试。

  • 使用hex十六进制编辑器,比如notepad++hex编辑器,或者ultraedit等,在十六进制的基础上,进行修改。而用常见的任何编辑器修改后,都极有可能会破坏程序体,导致运行页面直接显示fatal错误。
  • 或者使用自己diy的脚本,进行replace修改或者append修改。比如下面的是苏南大叔修改上述文件的时候,自己写的php脚本。
newsn.net:这里是【评论】可见内容

如何控制php逻辑的走向

掌握了文件修改的方法之后,就是具体的修改方案的问题了。方案要看这个加密文件的自身情况了。

其实这个魔方二代crane加密后的文件,对于苏南大叔来说,如果想要还原,确实难度很大。但是,苏南大叔认为,这个算法也存在着一定的问题,就是类的主体都是暴露在外面的,只是方法内容被实力加密了。那么破解的思路可能就来了:想办法改写这个类。

苏南大叔先修改了加密文件的文件名,然后通过修改文件主体的方式,给这个加密文件的class类,加了一个namespace heiwu

加密的两个类被关进了小黑屋heiwu之后,在新建的<原文件名>.php,通过类继承的方式,继承上述被改写的原版class,进而改写对应的方法。(魔方加密会保留相关方法名和类名....)

newsn.net:这里是【作者】可见内容

更高级简单的解密方法

市面上流出的魔方二代解密的程式,大家就不要实验了。或者说,您做好了思想准备再执行吧。苏南大叔试验后,在桌面上生成了几千个临时文件,瞬间死机,估计是被动过手脚的。

网络上有个流传的网站,可以付费破解魔方二代的加密,试了一下,物美价廉。但是破解的结果似乎是有问题的,并不完美。对于本文来说,代码中有两个php类,第一个完美破解。但第二个类出了问题,表面上看起来ok,却实际不能使用。可见,魔方二代加密的水平还是很高的。

newsn.net:这里是【作者】可见内容

总结

最终的结果上看,这个加密文件是被完美破解了。因为手工修复了第二个类的缘故,加深了对这个系统的理解程度。一共使用了两种途径,破解该源码。分别是:

  • 第一个途径,保留被加密的php文件,只是改写了关键性的class的方法。
  • 第二个途径,通过付费破解的方式,拿到了一个不完美的明文php,然后手工修复了并不完美的相关逻辑。

本文仅仅记录相关破解思路,并没有涉及该系统名称及关键性的破解代码。同时,对于友情出镜的魔方加密二代crane算法,苏南大叔表示非常高深莫测,如果能把类名和方法名也都加密掉的话,无疑是最好的。

更多加密解密的相关文章,请点击苏南大叔的博客文章。

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

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

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

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