#elf #object #symbols #mach-o #symbol-table #archive #static

构建 symtool

symtool 用于编辑 MachO 和 ELF 对象文件及归档的静态符号表

3 个版本

0.1.4 2021年4月30日
0.1.3 2020年4月20日
0.1.2 2019年11月8日

#616 in 构建工具

MIT/Apache

34KB
733 代码行

symtool

用于 ELF 和 Mach-O 对象的静态符号操作工具

Build Status

安装

手动安装

下载您操作系统的最新版本:最新版本.

Homebrew (macOS, Linux, Windows Subsystem for Linux)

brew tap calebzulawski/symtool http://github.com/calebzulawski/symtool.git
brew install symtool

Cargo

cargo install symtool

文件类型支持

支持 ELF 和 Mach-O 对象以及对象归档。

功能

  • 更改符号可见性
  • 重命名符号
  • 操作在原地执行,不影响二进制文件的其余部分

示例

更改符号可见性

隐藏所有以 foo 开头的符号,并显示所有以 bar 结尾的符号。

symtool --hidden "^foo" --default "bar$" input.o output.o

重命名符号

将符号 foo 重命名为 bar

symtool --rename foo bar input.o output.o

注意:符号重命名在原地执行,因此新名称不能比原始名称长。

为什么使用 symtool?

  • 非常快(对象只是修补,无需再生或重定位)
  • 支持广泛的非标准对象格式(例如,Intel 的 ICC 合并字符串表)
  • 跨平台方法调整现有对象和归档的符号可见性(GNU ld 在链接时可以这样做,但 Apple 的 ld64 不能)

许可

symtool 在 MIT 许可证和 Apache 许可证(版本 2.0)的条款下分发。

有关详细信息,请参阅 LICENSE-APACHELICENSE-MIT

依赖关系

~4–5MB
~78K SLoC