第一次解除小猪o2o好像还是2.0版本若干年了,当时功能也没那么强大,当时有一个项目类似商城会员卡功能,制作很曲折最后直接买了一个现成的CMS系统虽然花了不少钱没赚多少但是工作最后进度也很利索,前几天业务联系到一个活,说是送外卖的,寻思这东西还要开发APP,想想都头疼,无意间想起过购买过小猪o2o这事于是就开始扒拉程序,后来发现版本太老了和官方现在的版本差别太大,现在的功能特别是对外卖方面简直太强大的不要不要的,于是协商付了一些钱升级到了最新的16.1但是问题又来了,系统本身有授权域名限制换了域名提示”WOW-a481b1f8f26db2510″ 我还以为哪里对接的不正确再三检查得知有加密限制 只允许使用授权域名…..我一时无语 难道我还要重新购买一套?哪有这种道理,我了节省成本我决定给它动下手术!(致力于各个行业网站建设如果你对PHP纯技术感兴趣可以一起交流QQ:2568478886)
1.批量搜了下
根据代码结构是swoole的加密,这个加密可以说是目前国内乃至加密界的佼佼者,看下它的介绍吧:
Swoole Compiler 是识沃科技推出的 PHP 代码加密和客户端授权解决方案,通过业内先进的代码加密技术,包括流程混淆、花指令、变量混淆、函数名混淆、虚拟机保护技术、扁平化代码、SCCP 优化等,将 PHP 程序源代码编译为二进制指令,来保护您的源代码
那么有人问swoole到底能不能解密?答案是肯定的,目前为止还未发现不可逆的加密,不管脚本混淆加密还是各类组件扩展加密!抱着这个信息我研究了一周(当然通常是空余时间)期间参考了各个平台大牛发布的swoole解密思路也深受启发!swoole的逆向工程包括so文件的脱壳和php文件的还原每一道都是一个坎!
SO得到文件
UPX加壳(变种了),在内存中DUMP数据,修复完成SO脱壳!
IDA载入分析:
加密算法如下:
php代码的逆向工程,PHP代码一顿手工操作后发现仍然还存在加密 SwooleC 加密后的代码,会对变量进行混淆通常见到的为WO开头,并且修改了部份IF 的结构。变成了GOTO ,详细如下图
修复后如下: