import os
import subprocess
# 配置区
pyc_dir = r"pycdir" # .pyc 文件所在目录
output_dir = r"outpuydempile" # 输出目录
pycdc_path = r"pycdc.exe" # pycdc 可执行文件路径
# 创建输出目录
os.makedirs(output_dir, exist_ok=True)
# 遍历 .pyc 文件
for root, dirs, files in os.walk(pyc_dir):
for file in files:
if file.endswith(".pyc"):
pyc_path = os.path.join(root, file)
# 构造输出路径,保持目录结构
rel_path = os.path.relpath(root, pyc_dir)
out_folder = os.path.join(output_dir, rel_path)
os.makedirs(out_folder, exist_ok=True)
py_file_path = os.path.join(out_folder, file.replace(".pyc", ".py"))
# 调用 pycdc 反编译
try:
subprocess.run([pycdc_path, pyc_path], stdout=open(py_file_path, "w", encoding="utf-8"), check=True)
print(f"[+] 反编译成功: {pyc_path} -> {py_file_path}")
except Exception as e:
print(f"[-] 反编译失败: {pyc_path}, 错误: {e}")
print("[✅] 批量反编译完成")