Swift 损坏的函数名称映射
Swift mangled function name mapping
Hopper 反汇编程序如何理解函数的名称?
例如,我有一个名为 function() 的简单 Swift 函数,在使用该函数反汇编可执行文件后,Hopper 向我显示它的错位名称是 __T04file8functionyy。我可以在可执行文件中找到这些符号的位置,但我找不到它如何将函数地址与其名称映射。
您可以阅读名称修改规范 straight from Apple。
如果您只想快速地分解名称,请在终端中键入以下内容:
swift demangle __T04file8functionyy
输出:
_T04file8functionyy ---> filefunction empty-list empty-list
(我不确定你提供的乱七八糟的名字是否有效)
我找到了这个 Mach-O 文件格式参考:
https://github.com/aidansteele/osx-abi-macho-file-format-reference
所以我的问题的答案是有一个叫做nlist_64的特殊结构,它包含executable中函数的地址以及符号 table.
中该函数的损坏名称的索引
Hopper 反汇编程序如何理解函数的名称?
例如,我有一个名为 function() 的简单 Swift 函数,在使用该函数反汇编可执行文件后,Hopper 向我显示它的错位名称是 __T04file8functionyy。我可以在可执行文件中找到这些符号的位置,但我找不到它如何将函数地址与其名称映射。
您可以阅读名称修改规范 straight from Apple。
如果您只想快速地分解名称,请在终端中键入以下内容:
swift demangle __T04file8functionyy
输出:
_T04file8functionyy ---> filefunction empty-list empty-list
(我不确定你提供的乱七八糟的名字是否有效)
我找到了这个 Mach-O 文件格式参考: https://github.com/aidansteele/osx-abi-macho-file-format-reference
所以我的问题的答案是有一个叫做nlist_64的特殊结构,它包含executable中函数的地址以及符号 table.
中该函数的损坏名称的索引