WCC:面向 ELF 二进制的编译工具集,把可执行文件转成共享库

9次阅读
没有评论
WCC:面向 ELF 二进制的编译工具集,把可执行文件转成共享库
获取下载链全程约 1 分钟
  1. 打开微信,搜索「软件教程管家」关注,或长按下方二维码关注
  2. 回复关键词 wcc
  3. 公众号自动回复网盘链接,点击即可保存下载
WCC:面向 ELF 二进制的编译工具集,把可执行文件转成共享库打开微信扫一扫关注
或搜索【软件教程管家】
官方渠道:GitHub 仓库

WCC(Witchcraft Compiler Collection)是一套面向 GNU/Linux 与 POSIX 平台的二进制编译工具集,它不编译源代码,而是直接对已经编译好的二进制文件动手:把 ELF 可执行文件转换成共享库,或者从可执行文件、共享库里抽出可重定位目标文件。如果你做逆向工程、二进制分析或者底层链接机制研究,这套工具正好补上常规编译器够不到的那一环。

项目 说明
项目名称 WCC(Witchcraft Compiler Collection)
核心工具 wld、wcc
适用平台 GNU/Linux 与其他 POSIX 平台
处理对象 ELF、PE 等二进制文件
主要语言 C
构建方式 Make(配合 Git 子模块),文档可用 Doxygen 生成
GitHub Star 约 2015

快速判断:它能干什么,不能干什么

先划一条线:WCC 不是 GCC、Clang 的替代品。它不负责把源代码编译成程序,而是处理已经存在的二进制文件。你的工作如果涉及 ELF 可执行文件转换、二进制分析实验或者底层链接机制研究,WCC 值得作为针对性工具评估;如果只是日常写代码、编译项目,用常规编译器就行,不用绕到这里来。

核心功能

  • wld:可执行文件转共享库。把 ELF 可执行文件转换成共享库,并提供忽略构造函数和析构函数的选项,方便在转换时去掉不需要的初始化逻辑。
  • wcc:二进制转 ELF。读取 ELF、PE 等二进制输入,生成有效的 ELF 二进制文件。
  • 生成可重定位目标文件。wcc 可以从可执行文件或共享库创建可重定位目标文件,供后续链接或分析使用。
  • 多架构场景。README 展示了处理 Intel、ARM、SPARC 等不同架构 ELF 文件的场景,实际效果仍需在目标文件和平台上验证。
  • 文档可自建。项目支持通过 Make 构建,并可选用 Doxygen 生成文档,用户手册位于项目 Wiki。

安装与构建步骤

项目需要从源码构建,构建前先确认环境是 GNU/Linux 或其他 POSIX 系统,并装好依赖。下面是 README 给出的标准流程:

  1. 克隆仓库:git clone https://github.com/endrazine/wcc.git,进入目录后初始化 Git 子模块。
  2. 安装依赖:按 Ubuntu/Debian 示例装好 capstone、glibc、libbfd、libdl、zlib、libelf、libreadline、libgsl、make 和 cargo 等软件。
  3. 执行构建:在项目目录运行 make,等待编译完成。
  4. 安装到系统:构建通过后运行 sudo make install 完成安装。
  5. 可选步骤:需要离线文档时,用 Doxygen 生成项目文档;日常查用法也可以直接看项目 Wiki 上的用户手册。

使用前必须确认的三件事

这三点直接决定 WCC 在你手里能不能跑起来,动手之前先逐项确认:

  1. 目标文件必须是 ELF。wld 当前只处理 ELF 二进制文件,其他格式不在它的处理范围内,拿错格式只会白跑一趟。
  2. 生成的是不可重定位共享库。wld 输出的共享库不可重定位,使用前要评估它与目标运行环境的适配性,不要默认它能像普通共享库一样随处加载。
  3. 依赖链要一次配齐。项目依赖多个底层系统库和构建工具,缺任何一个都可能导致构建失败;建议把依赖安装、子模块初始化和构建步骤写进可重复的环境配置流程,而不是每次手动敲。

适用人群

适合需要研究 ELF 二进制结构、可执行文件转换、链接过程或底层编译工具的开发者、逆向工程学习者和系统软件研究人员。如果你只需要常规源代码编译,或者要的是开箱即用的单一工具,WCC 不是为这个场景准备的。

与常规编译器的区别:明确取舍

常规编译器(GCC、Clang)的工作起点是源代码,终点是可执行文件;WCC 的工作起点就是可执行文件本身,终点是转换后的共享库或目标文件。两者不在同一条流水线上,也不存在谁替代谁。选 WCC 的唯一理由,是你的任务明确落在“处理 ELF 二进制、生成共享库、创建可重定位目标文件”这个范围内,并且团队能维护 C 工具链及多项系统库依赖。如果需求是跨格式二进制转换、标准源代码编译或者易部署的单一工具,应该先比较其他方案,再通过用户手册和源码验证 wcc 的具体覆盖范围。

注意事项

  • wld 生成的是不可重定位共享库,使用时需要评估其与目标运行环境的适配性。
  • 项目依赖多个底层系统库和构建工具,部署前需要准备完整的开发环境,缺依赖的构建失败先查依赖清单再排查别的。
  • README 未完整列出 wcc 的全部命令行选项和行为边界,具体能力需查看用户手册或源码确认,不要凭猜测写进脚本。
  • 公开信息有限,升级时重点检查 libbfd、libelf、capstone、glibc 与 cargo 等依赖的兼容性,长期维护状态需查看 README、Wiki 或源码确认。
  • 不同 POSIX 平台上的实际兼容性需要自己验证,README 的示例以 Ubuntu/Debian 为主,换平台先在测试环境跑通再上生产流程。

前往 GitHub 查看 WCC

GitHub 国内访问较慢,如打不开可多刷新几次

推广WCC:面向 ELF 二进制的编译工具集,把可执行文件转成共享库

关注「软件教程管家」

回复软件名即取即下:网盘下载链接 + 提取码,一步直达,不用再跳转。

版权与使用提示

本站资源仅供个人学习交流,请勿用于商业用途。软件与资料版权归原作者所有;如有侵权,请通过公众号「软件教程管家」联系我们,我们将在 24 小时内下架处理。查看免责声明 ›

上次编辑至今:2天 · 内容还比较新鲜

公告

契机库网站正式上线!

了解更多
收藏这款软件我的收藏 →

这款软件怎么样?

平均 暂无评分(0 人评)

取链次数:0

评分与投票来自真实访客,从 0 开始累计;觉得有用就点一下,帮更多人判断这款软件值不值得下。

正文完
 0