2021年6月

最近看一个项目代码。好多天都不知道是什么加密方式。尝试了网上各种在线解密,都解不开。
后来,思路一转,何不看看低版本是怎么加密的呢,也许根本没加密也说不定。但是代码逻辑应该是差不多的。

找来低版本的代码。打开一看。开头明晃晃的。

    PM9SCREW

网上搜了下。原来是php_screw加密。
https://sourceforge.net/projects/php-screw/
还找到个解密的工具。
https://github.com/firebroo/screw_decode
解密需要知道PM9SCREW、PM9SCREW_LEN、以及pm9screw_mycryptkey,
前两个都是默认的,只需要知道key就行了。然后,用IDA,打开so文件,得到了key。
然后就解开了。

新版的,代码在这里。
https://github.com/del-xiong/screw-plus
解密更方便了。直接IDA打开,就看到key了。
解密也更方便,把key填到php_screw_plus.h里面
可能需要装

apt-get install gcc make zlib1g-dev
cd tools
make
./screw /home/xxx/sourcecode/ -d 

会在原来目录下,生成同名的的解密版。所以最好吧原来的加密代码备份一份。

参考:
https://www.cnblogs.com/StudyCat/p/11268399.html
https://jrdw0.github.io/2019/03/14/PHP-SCREW%E8%A7%A3%E5%AF%86PM9SCREW/