3 个版本
0.1.4 | 2021年4月30日 |
---|---|
0.1.3 | 2020年4月20日 |
0.1.2 | 2019年11月8日 |
#616 in 构建工具
34KB
733 代码行
symtool
用于 ELF 和 Mach-O 对象的静态符号操作工具
安装
手动安装
下载您操作系统的最新版本:最新版本.
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-APACHE 和 LICENSE-MIT。
依赖关系
~4–5MB
~78K SLoC