添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
如何轻松解密 pyc 文件?

如何轻松解密 pyc 文件?

公司的pyc做了加密, 前段时间研究了一下怎么解密?

最开始的思路是反汇编pypy的dll, 找到import代码的实现, 然后写一个解码的函数. 但是对反编译的东西不熟悉, 想要找到解密的地方比较困难. 最后放弃了这个思路.

后面看到了一篇pyc文件格式的文章, 得知pyc文件其实就是文件头+marshal编码后的python vm字节码, 所以尝试了hook一下marshal.loads

import marshal
old_loads = marshal.loads
count = 0
pyc_set = set()
def marshal_loads(s):
    global count
    pyc_hash = hashlib.md5(s).hexdigest()
    if pyc_hash in pyc_set:
        return old_loads(s)
    pyc_set.add(pyc_hash)
    count += 1
    x = "O_" + str(count)
    with open("./dumps/%s.pyc" % x, "wb") as f:
        f.write(base64.b32decode('BLZQ2CR54CUFU==='))
        f.write(s)