MASTG-TECH-0114: Desofuscação de Símbolos
Para tornar alguns identificadores no programa únicos, o compilador processará seus nomes de símbolos. Esse processo é chamado de "name mangling" ou simplesmente "mangling". Frequentemente, os símbolos resultantes são difíceis de entender para humanos. Além disso, seu formato é específico para a linguagem de entrada, o compilador e pode até ser dependente da versão.
Você pode usar ferramentas de demangling para reverter o processo de mangling. Para Swift, há swift-demangle, e para nomes de funções em C++, há c++filt.md.
swift-demangle¶
Passe o símbolo com mangling para swift-demangle:
$ xcrun swift-demangle __T0So9WKWebViewCABSC6CGRectV5frame_So0aB13ConfigurationC13configurationtcfcTO
_T0So9WKWebViewCABSC6CGRectV5frame_So0aB13ConfigurationC13configurationtcfcTO ---> @nonobjc __C.WKWebView.init(frame: __C_Synthesized.CGRect, configuration: __C.WKWebViewConfiguration) -> __C.WKWebView
c++filt¶
Você pode fazer o demangling de símbolos C++ com c++filt:
c++filt _ZSt6vectorIiSaIiEE
std::vector<int, std::allocator<int>>