MASTG-TECH-0114: 解混淆符号
为了使程序中的某些标识符具有唯一性,编译器会处理它们的符号名称。这个过程被称为“名称混淆”或简称为“混淆”。通常,生成的符号对于人类来说很难理解。此外,它们的格式特定于输入语言、编译器,甚至可能依赖于版本。
您可以使用反混淆工具来还原混淆过程。对于 Swift,有 swift-demangle;对于 C++ 函数名称,有 c++filt.md。
swift-demangle¶
将混淆的符号传递给 swift-demangle
$ xcrun swift-demangle __T0So9WKWebViewCABSC6CGRectV5frame_So0aB13ConfigurationC13configurationtcfcTO
_T0So9WKWebViewCABSC6CGRectV5frame_So0aB13ConfigurationC13configurationtcfcTO ---> @nonobjc __C.WKWebView.init(frame: __C_Synthesized.CGRect, configuration: __C.WKWebViewConfiguration) -> __C.WKWebView
c++filt¶
您可以使用 c++filt反混淆 C++ 符号。
c++filt _ZSt6vectorIiSaIiEE
std::vector<int, std::allocator<int>>