惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
Visual Studio Blog
I
InfoQ
H
Help Net Security
GbyAI
GbyAI
博客园 - 叶小钗
Recent Announcements
Recent Announcements
Engineering at Meta
Engineering at Meta
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
爱范儿
爱范儿
Y
Y Combinator Blog
L
LangChain Blog
腾讯CDC
酷 壳 – CoolShell
酷 壳 – CoolShell
WordPress大学
WordPress大学
Stack Overflow Blog
Stack Overflow Blog
F
Fortinet All Blogs
G
Google Developers Blog
Apple Machine Learning Research
Apple Machine Learning Research
The GitHub Blog
The GitHub Blog
T
The Blog of Author Tim Ferriss
博客园 - Franky
D
Docker
Jina AI
Jina AI
罗磊的独立博客

博客园 - daviyoung

Windows 11 22H2 安装 .NET Framework 3.5 完整教程 System.Threading.Timer 详细讲解 Agent 开发入门(一):从零构建你的第一个智能体 用 C# 开发一个解释器语言——基于《Crafting Interpreters》的实战系列(五)表达式求值 python使用plotly绘制图表 手把手搭建OPC UA服务器 图像处理库Pillow的使用:批量裁剪图片 python-docx库的使用:图片插入到word文档里 modbus(二)用NModbus4库实现Modbus tcp从站 Jenkins 容器化实践:Docker 部署与 CI/CD 流水线配置 Streamlit实战 以ENS 的 BaseRegistrarImplementation 合约为例,用web3.py调用合约 虚拟环境下安装包后,vs code仍然有下滑波浪线及显示找不到包(运行是正常的)的解决办法 Merkle Tree 用 C# 开发一个解释器语言——基于《Crafting Interpreters》的实战系列(四)可视化 语法树 Solidity开发ERC20智能合约claim token的功能 Solidity开发ERC20智能合约demo及部署到测试网 用 C# 开发一个解释器语言——基于《Crafting Interpreters》的实战系列(三)表达式的抽象语法树设计(Expr) 用 C# 开发一个解释器语言——基于《Crafting Interpreters》的实战系列(二)词法分析器
用pycdc批量反编译pyc文件
daviyoung · 2025-08-14 · via 博客园 - daviyoung
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("[✅] 批量反编译完成")