Loading...
Searching...
No Matches

Detailed Description

Functions

std::optional< DemanglerResultBinaryNinja::DemangleLLVM (const std::string &mangledName, bool simplify=true)
 Demangles using LLVM's demangler.
std::optional< DemanglerResultBinaryNinja::DemangleMS (const Platform *platform, const std::string &mangledName, bool simplify=true)
 Demangles a Microsoft Visual Studio C++ name.
std::optional< DemanglerResultBinaryNinja::DemangleGNU3 (const Platform *platform, const std::string &mangledName, bool simplify=true)
 Demangles a GNU3 name.
bool BinaryNinja::IsMSVCMangledString (const std::string &mangledName)
 Determines if a symbol name is a mangled Microsoft Visual Studio C++ name.
bool BinaryNinja::IsGNU3MangledString (const std::string &mangledName)
 Determines if a symbol name is a mangled GNU3 name.

Function Documentation

◆ DemangleLLVM()

std::optional< DemanglerResult > BinaryNinja::DemangleLLVM ( const std::string & mangledName,
bool simplify = true )

Demangles using LLVM's demangler.

Parameters
[in]mangledNameA mangled MSVC/GNU3/Rust/D name.
[in]simplifyWhether to simplify demangled names.
Returns
Demangled type/name if successful.

◆ DemangleMS()

std::optional< DemanglerResult > BinaryNinja::DemangleMS ( const Platform * platform,
const std::string & mangledName,
bool simplify = true )

Demangles a Microsoft Visual Studio C++ name.

Parameters
[in]platformPlatform for the symbol. Required for pointer/integer sizes and calling conventions.
[in]mangledNameA mangled Microsoft Visual Studio C++ name.
[in]simplifyWhether to simplify demangled names.
Returns
Demangled type/name if successful.

◆ DemangleGNU3()

std::optional< DemanglerResult > BinaryNinja::DemangleGNU3 ( const Platform * platform,
const std::string & mangledName,
bool simplify = true )

Demangles a GNU3 name.

Parameters
[in]platformPlatform for the symbol. Required for pointer/integer sizes and calling conventions.
[in]mangledNameA mangled GNU3 name.
[in]simplifyWhether to simplify demangled names.
Returns
Demangled type/name if successful.

◆ IsMSVCMangledString()

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

Determines if a symbol name is a mangled Microsoft Visual Studio C++ name.

Parameters
[in]mangledNameA potentially mangled name.
Returns
True if the name is recognized by the built-in MSVC demangler.

◆ IsGNU3MangledString()

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

Determines if a symbol name is a mangled GNU3 name.

Parameters
[in]mangledNameA potentially mangled name.
Returns
True if the name is recognized by the built-in GNU3 demangler.