diff options
Diffstat (limited to 'binaryninjaapi.h')
| -rw-r--r-- | binaryninjaapi.h | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/binaryninjaapi.h b/binaryninjaapi.h index 8604e44f..fb5e77fc 100644 --- a/binaryninjaapi.h +++ b/binaryninjaapi.h @@ -704,8 +704,12 @@ __attribute__ ((format (printf, 1, 2))) class BinaryView; bool DemangleMS(Architecture* arch, const std::string& mangledName, Type** outType, + QualifiedName& outVarName, const bool simplify = false); + bool DemangleMS(Architecture* arch, const std::string& mangledName, Type** outType, QualifiedName& outVarName, const Ref<BinaryView>& view); bool DemangleGNU3(Ref<Architecture> arch, const std::string& mangledName, Type** outType, + QualifiedName& outVarName, const bool simplify = false); + bool DemangleGNU3(Ref<Architecture> arch, const std::string& mangledName, Type** outType, QualifiedName& outVarName, const Ref<BinaryView>& view); void RegisterMainThread(MainThreadActionHandler* handler); @@ -5401,4 +5405,32 @@ __attribute__ ((format (printf, 1, 2))) static int Compare(LinearViewCursor* a, LinearViewCursor* b); }; + + class SimplifyName + { + public: + // Use these functions to interface with the simplifier + static std::string to_string(const std::string& input); + static std::string to_string(const QualifiedName& input); + static QualifiedName to_qualified_name(const std::string& input, bool simplify); + static QualifiedName to_qualified_name(const QualifiedName& input); + + // Below is everything for the above APIs to work + enum SimplifierDest + { + str, + fqn + }; + + SimplifyName(const std::string&, const SimplifierDest, const bool); + ~SimplifyName(); + + operator std::string() const; + operator QualifiedName(); + + private: + const char* m_rust_string; + const char** m_rust_array; + uint64_t m_length; + }; } |
