原本公司使用的程序是别人制作的,使用了zend加密。
由于现在找不到原作者,而服务器进行了更改,导致我没办法正常使用系统。现在使用了dezender进行了解密,解密出来了,也找到了问题所在。
但是解密后的代码是混淆代码。进过替换文件找到了 类名称是 n8mq_lqkzm6wr7nk。
虽然类名称正确了,但是类中有个函数,解密的名称是:public function _obfuscate_aXITdng5aHdnHDAc( )
而通过替换类文件后,php提示找不到一个 带有'!!'的函数。php是不支持带有特殊符号的函数命名的,这样我将函数名称改成了,结果提示函数名称错误。根据推理,应该是程序经过zend加密的时候选择了混淆函数。
这些函数在装有zend的服务器上运行时候会自动通过zend进行解密并且指向对应位置。我后来考虑过 全局进行解密,因为解密后的函数都是一一对应的,即使混淆了,也是对应关系,至少程序可以使用。结果发现不行,因为一些系统函数或者标准函数在解密后也呈现的是乱码。比如substr(),反编译后的就是乱码。如果说一个自定义的函数或者类,至少可以通过class 函数名查找出来,而一个未定义的函数乱码,我只能猜测。根据函数执行的结果以及函数所在的位置进行猜测。1个2个还好。这几百个页面我实在无能为力。更何况有些页面在解密后会有数据残缺。我们公司现在是急需要将系统重新架设起来,再重新找人搭建新的系统,否则每天都有损失。有谁能提供方法,或者有相关经验的人能提供一些建议么?谢谢了