最近同事遇到了screw加密的问题,之前也没接触过这款加密扩展,便上网搜了下解决办法,顺便在这里记录一下,以便以后能用到。
情况复原,了解了下之后去官网把扩展下回来,把环境搭建起来了:
官网:https://sourceforge.net/projects/php-screw/
下回来之后make编译一下,编译好了之后,这款加密程序加密之后会生成对应后缀的文件,譬如1.php,加密之后就会替换掉1.php,而源文件(未加密的)则会更名为:1.php.screw
在github上找到对应的解密程序:https://github.com/firebroo/screw_decode
下载解密程序并编译:
git clone https://github.com/firebroo/screw_decode.git
make
通过github上的信息,解密需要知道PM9SCREW、PM9SCREW_LEN、以及pm9screw_mycryptkey,其中第三个最为重要,拿到了就能破解,如果这3个都知道了就能瞬间跑出源码了。
解密过程:
密钥放在:my_screw.h 文件里
如果能找到密钥字符串,将这串字符串放置在解密程序里的:screwdecode.c 文件中
替换之后,重新编译解密程序,运行一下,可以看到加密之后的文件被成功解密:
网站很棒!~~~~
博客真是个好地方!
为什么我用的git上面的代码显示段错误?没办法用啊,希望得到解答,谢谢您了
具体什么错误?
大佬可以给下最后一步解密的命令么?
小白用过一下的命令都不行呢
gcc screwdecode.c -o screwdecode.out
gcc php_screw.c zencode.c screwdecode.c
Pingback引用通告: SWPU CTF 2017 WriteUp – Blog of f1sh
为什么用phh_screw github上那个解密会爆出Segmentation f呢ault?求大佬指点
我也是。。。求解。。。很难受