关于php-screw 解密

最近同事遇到了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 文件中

替换之后,重新编译解密程序,运行一下,可以看到加密之后的文件被成功解密:

关于php-screw 解密》有8个想法

  1. 大佬可以给下最后一步解密的命令么?
    小白用过一下的命令都不行呢
    gcc screwdecode.c -o screwdecode.out
    gcc php_screw.c zencode.c screwdecode.c

    回复
  2. Pingback引用通告: SWPU CTF 2017 WriteUp – Blog of f1sh

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注