mzphp2-deobfuscator icon indicating copy to clipboard operation
mzphp2-deobfuscator copied to clipboard

可否增加GZ解密

Open yjdsky opened this issue 7 years ago • 3 comments

你好,本人不懂 python 代码,无法实现你注意事项第3点的修改,可否在现有项目中增加其功能?谢谢

yjdsky avatar Jan 06 '19 17:01 yjdsky

我按照作者给出的方法

不支持经过gz字符串压缩的mzphp混淆。其实这个特性实现起来不难,寻找gzinflate(substr(gz_bytes, 0xa, -8));这一句,取出gz_bytes,在python中decompress就行了。

自己尝试了一下

gz_str = re.search(
        r'gzinflate\(substr\(\'(.*?)\',0x0a, -8\)\)\);',
        file_content,
        re.M|re.I
    );
print(gzip.decompress(gz_str.group(1).encode()));

但得到的结果是 OSError: Not a gzipped file (b'\\x') 不知道思路有没有错,作者有空的话能否指导一下

saiwfy avatar Jan 30 '19 03:01 saiwfy

我觉的作者只是说说,其实他也不会,要这么简单,几句代码也不是懒癌不懒癌的了

york-ly avatar Feb 25 '19 11:02 york-ly

gz_str

你取错了字段,你可以先打开源文件看看这一句 gzinflate(substr(gz_bytes, 0xa, -8))

python要先取到 gz_bytes 里面从 0xa 开始到其倒数第八位为止的内容(去看看php当中substring()函数的用法),之后调用decompres就可以实现需要的字段了。

获取之后需要修改 45-59 行,为gz压缩的情况下作者是通过正则匹配的,现在你可以直接换成你所解压出来的东西替换了。

eocene317 avatar Dec 05 '19 16:12 eocene317