Logo 逆向知识库

pyc

Python 读取脚本的过程:

  1. 读文件,scanner 切分 token
  2. parser 解析 token,建立抽象语法树(AST)
  3. compiler 编译 ast,得到 python 字节码
  4. code evaluator 执行字节码

 

手动编译#

tool.py

def calc(a, b):
    return a * b + a / b

 

python3 -m py_compile tool.py

import py_compile
py_compile.compile("./tool.py")

 

反编译#

pycdc#

pycdc-gitAUR

  • pycdc 反编译 pyc
  • pycdas 反汇编 pyc,pycdc 有时候函数无法反编译,可以反汇编看,用 pycdas 比直接打印出来好看一些。

 

参考: