php源码被使用zend加密,现阶段还没用解密方法。但是好像现在有这样的一个studio,他们成功地完成了zend和eac的decode
不过是收费的
代码内有三个函数,由于每次加密这三个函数的顺序都不一样,这个以传参方式区分这三个函数
fun1 = ($var1, $var2 = '') = 核心函数,将乱码转成正常字符串
fun2 = (&$var1, $var2) = 校验 IP、域名,防止被破解。最后一句是解密整个 php 文件
fun3 = ($var1) = 将需要用到的函数赋值给 N 个全局变量
先从 fun1 开始逆起,在编辑器中双击变量名,该变量高亮之后,可以看到它怎么变化,在哪里被使用。
一句句语句逆下去,发现有语法错误,其实是代码修复后的 bug,用 winhex 打开定位到这句代码,发现是三元运算符
$var2 = !$var2 ? ord('乱码') : $var2;
接下来是一句很奇怪很无用的代码,再下一句是 for 循环,我猜测是给 $i 赋值
for($i=0; $i
下个 for 循环里又是一个三元运算符,手动修复后,基本 fun1 的代码就出来。
接下来就是运行 fun1 函数,但是碰到个坑点,fun1 有很多处用到乱码做运算,而乱码不能直接拷到编辑器中。
用 winhex 将 16 进制的乱码字符复制出来,在运算的时候 pack("H*","乱码") 将它还原回乱码即可。
不会的可以去 微破译 看看