赞
踩
要对公司内部的某系统做测试审计,但是碰到了加密的PHP文件,因为是采购的第三方整套设备所以只能自己做解密啦。
加密形式如下图:
收集了一下PM9SCREW的信息,该使用的加密拓展名字叫PHP_Screw,这是一款免费的针对PHP源码进行加密的PHP的扩展,可以自定义加密的key,加密后的文件运行效率还不会下降。原理是通过压缩取反然后跟加密的key做异或加密的方式,在使用的时候通过.so文件的拓展文件进行解密然后再运行。并且找到了两个前人写好的工具,参考文章及工具链接如下:
https://www.skactor.tk/2018/03/26/php-screw%E7%9A%84%E5%8A%A0%E5%AF%86%E5%92%8C%E8%A7%A3%E5%AF%86%E6%8E%A2%E7%A9%B6%EF%BC%88%E4%BA%8C%EF%BC%89%E8%A7%A3%E5%AF%86%E7%AE%97%E6%B3%95%E4%B8%8Epython%E5%AE%9E%E7%8E%B0/
https://github.com/firebroo/screw_decode
通过前文得知有加密密钥存储的.so拓展文件很关键,所以先寻找文件:
找到了之后发现也是二进制文件:
于是IDA搞起,先找到pm9screw相关函数:
然后追踪相关变量:
找到加密的密钥口令:
hex转为十进制:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。