Demangle

Detailed Description

Functions

bool BinaryNinja::DemangleLLVM (const std::string &mangledName, QualifiedName &outVarName, const bool simplify=false)
 Demangles using LLVM's demangler. More...
 
bool BinaryNinja::DemangleLLVM (const std::string &mangledName, QualifiedName &outVarName, BinaryView *view)
 Demangles using LLVM's demangler. More...
 
bool BinaryNinja::DemangleMS (Architecture *arch, const std::string &mangledName, Ref< Type > &outType, QualifiedName &outVarName, const bool simplify=false)
 Demangles a Microsoft Visual Studio C++ name. More...
 
bool BinaryNinja::DemangleMS (Architecture *arch, const std::string &mangledName, Ref< Type > &outType, QualifiedName &outVarName, BinaryView *view)
 Demangles a Microsoft Visual Studio C++ name. More...
 
bool BinaryNinja::DemangleGNU3 (Ref< Architecture > arch, const std::string &mangledName, Ref< Type > &outType, QualifiedName &outVarName, const bool simplify=false)
 Demangles a GNU3 name. More...
 
bool BinaryNinja::DemangleGNU3 (Ref< Architecture > arch, const std::string &mangledName, Ref< Type > &outType, QualifiedName &outVarName, BinaryView *view)
 Demangles a GNU3 name. More...
 
bool BinaryNinja::IsGNU3MangledString (const std::string &mangledName)
 Determines if a symbol name is a mangled GNU3 name. More...
 

Function Documentation

◆ DemangleLLVM() [1/2]

bool BinaryNinja::DemangleLLVM ( const std::string &  mangledName,
QualifiedName outVarName,
const bool  simplify = false 
)

Demangles using LLVM's demangler.

Parameters
[in]mangledNamea mangled (msvc/itanium/rust/dlang) name
[out]outVarNameQualifiedName reference to write the output name to.
[in]simplifyWhether to simplify demangled names.

◆ DemangleLLVM() [2/2]

bool BinaryNinja::DemangleLLVM ( const std::string &  mangledName,
QualifiedName outVarName,
BinaryView view 
)

Demangles using LLVM's demangler.

Parameters
[in]mangledNamea mangled (msvc/itanium/rust/dlang) name
[out]outVarNameQualifiedName reference to write the output name to.
[in]viewView to check the analysis.types.templateSimplifier for

◆ DemangleMS() [1/2]

bool BinaryNinja::DemangleMS ( Architecture arch,
const std::string &  mangledName,
Ref< Type > &  outType,
QualifiedName outVarName,
const bool  simplify = false 
)

Demangles a Microsoft Visual Studio C++ name.

Parameters
[in]archArchitecture for the symbol. Required for pointer and integer sizes.
[in]mangledNamea mangled Microsoft Visual Studio C++ name
[out]outTypeReference to Type to output
[out]outVarNameQualifiedName reference to write the output name to.
[in]simplifyWhether to simplify demangled names.

◆ DemangleMS() [2/2]

bool BinaryNinja::DemangleMS ( Architecture arch,
const std::string &  mangledName,
Ref< Type > &  outType,
QualifiedName outVarName,
BinaryView view 
)

Demangles a Microsoft Visual Studio C++ name.

This overload will use the view's "analysis.types.templateSimplifier" setting to determine whether to simplify the mangled name.

Parameters
[in]archArchitecture for the symbol. Required for pointer and integer sizes.
[in]mangledNamea mangled Microsoft Visual Studio C++ name
[out]outTypeReference to Type to output
[out]outVarNameQualifiedName reference to write the output name to.
[in]viewView to check the analysis.types.templateSimplifier for

◆ DemangleGNU3() [1/2]

bool BinaryNinja::DemangleGNU3 ( Ref< Architecture arch,
const std::string &  mangledName,
Ref< Type > &  outType,
QualifiedName outVarName,
const bool  simplify = false 
)

Demangles a GNU3 name.

Parameters
[in]archArchitecture for the symbol. Required for pointer and integer sizes.
[in]mangledNamea mangled GNU3 name
[out]outTypeReference to Type to output
[out]outVarNameQualifiedName reference to write the output name to.
[in]simplifyWhether to simplify demangled names.

◆ DemangleGNU3() [2/2]

bool BinaryNinja::DemangleGNU3 ( Ref< Architecture arch,
const std::string &  mangledName,
Ref< Type > &  outType,
QualifiedName outVarName,
BinaryView view 
)

Demangles a GNU3 name.

This overload will use the view's "analysis.types.templateSimplifier" setting to determine whether to simplify the mangled name.

Parameters
[in]archArchitecture for the symbol. Required for pointer and integer sizes.
[in]mangledNamea mangled GNU3 name
[out]outTypeReference to Type to output
[out]outVarNameQualifiedName reference to write the output name to.
[in]viewView to check the analysis.types.templateSimplifier for

◆ IsGNU3MangledString()

bool BinaryNinja::IsGNU3MangledString ( const std::string &  mangledName)

Determines if a symbol name is a mangled GNU3 name.

Parameters
[in]mangledNamea potentially mangled name