menu arrow_back 湛蓝安全空间 |狂野湛蓝,暴躁每天 chevron_right ... chevron_right (一)Php screw加密与破解工具(php-screw-brute) chevron_right (一)Php screw加密与破解工具(php-screw-brute).md
  • home 首页
  • brightness_4 暗黑模式
  • cloud
    xLIYhHS7e34ez7Ma
    cloud
    湛蓝安全
    code
    Github
    (一)Php screw加密与破解工具(php-screw-brute).md
    2.26 KB / 2021-07-15 19:59:45
        (一)Php screw加密与破解工具(php-screw-brute)
    ================================================
    
    > 项目地址
    
        https://github.com/ianxtianxt/php-screw-brute
    
    > 此脚本可以恢复/爆破php screw使用的密钥。PHP
    > Screw使用压缩文件的长度来确定(硬编码)密钥的起始索引。PHP
    > Screw的工作原理是首先使用ZLIB(级别1)压缩PHP文件,然后按位取反,再与密钥进行异或。
    > 因为ZLIB具有固定的头部并且不同文件的起始索引不同,所以可以恢复密钥的一部分,
    > 其余字节可以爆破。 通常,你拥有的文件越多,恢复密钥的速度就越快。
    > 当然,所有文件都必须使用相同的PHP Screw密钥进行加密。
    > 如果你拥有的文件足够多,则可直接恢复密钥而不需要爆破。
    
    下图是php文件经过php
    screw加密后的一个样子,通过开头的"PM9SCREW"字符串得知使用了php
    screw进行加密。![1.png](./resource/(一)Phpscrew加密与破解工具(php-screw-brute)/media/rId21.png)
    
    ### 使用方法
    
    下图是使用方法,解密成功后,会在相同目录下生成以".plain"为后缀的同名文件。比如待解密的文件是"index.php",则解密成功后生成"index.php.plain"文件。![2.png](./resource/(一)Phpscrew加密与破解工具(php-screw-brute)/media/rId23.png)
    
    > 写了一个python脚本,用于筛选解密成功的php文件。
    
        #!/usr/bin/python
        # -*- coding: UTF-8 -*-
         
        import os
        import shutil
         
        def main():
            src = '/root/Download/demo'
            dst = src + '_backup'
            shutil.copytree(src,dst)    #备份
             
            for root,dirs,files in os.walk(src):
                for name in files:
                    basename, ext = os.path.splitext(name)
                    oldname = os.path.join(root,name)
                    newname = os.path.join(root,basename)
                    if ext == '.php':
                        os.remove(oldname)  #删除原来的加密的PHP文件
                    if ext == '.plain':
                        os.rename(oldname,newname)  #重命名解密成功的文件 filename.php.plain => filename.php
             
            print('Good job')
         
        if __name__ == '__main__':
            main()
    
    参考链接
    --------
    
    > https://www.cnblogs.com/StudyCat/p/11268399.html
    
    
    links
    file_download