Demangle

Detailed Description

Functions

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

◆ 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