diff options
| author | 0cyn <kat@vector35.com> | 2026-04-27 13:25:14 -0400 |
|---|---|---|
| committer | 0cyn <kat@vector35.com> | 2026-05-05 14:38:23 -0400 |
| commit | e4db4f0704ea6e6b381e9322a336661dc23c3b5f (patch) | |
| tree | 23d84ee814d18f71909dda27ce0453b778605822 | |
| parent | 73976e975ddf4dd0cbb5aa49425cf36e5655cd5c (diff) | |
Expose 'is_paid' Extension field in API
| -rw-r--r-- | binaryninjaapi.h | 1 | ||||
| -rw-r--r-- | binaryninjacore.h | 1 | ||||
| -rw-r--r-- | pluginmanager.cpp | 6 | ||||
| -rw-r--r-- | python/pluginmanager.py | 5 | ||||
| -rw-r--r-- | rust/src/repository/plugin.rs | 5 |
5 files changed, 18 insertions, 0 deletions
diff --git a/binaryninjaapi.h b/binaryninjaapi.h index af9992fd..ac528db8 100644 --- a/binaryninjaapi.h +++ b/binaryninjaapi.h @@ -19219,6 +19219,7 @@ namespace BinaryNinja { VersionInfo GetMaximumVersionInfo() const; std::string GetCreationDate(); bool IsViewOnly() const; + bool IsPaid() const; bool IsBeingDeleted() const; bool IsBeingUpdated() const; bool IsInstalled() const; diff --git a/binaryninjacore.h b/binaryninjacore.h index cec95ec9..c5dcc7d4 100644 --- a/binaryninjacore.h +++ b/binaryninjacore.h @@ -7987,6 +7987,7 @@ extern "C" BINARYNINJACOREAPI void BNPluginFreeVersion(BNPluginVersion v); BINARYNINJACOREAPI const char* BNPluginGetCommit(BNPlugin* p); BINARYNINJACOREAPI const bool BNPluginGetViewOnly(BNPlugin* p); + BINARYNINJACOREAPI const bool BNPluginGetIsPaid(BNPlugin* p); BINARYNINJACOREAPI void BNFreePluginTypes(BNPluginType* r); BINARYNINJACOREAPI BNPlugin* BNNewPluginReference(BNPlugin* r); BINARYNINJACOREAPI void BNFreePlugin(BNPlugin* plugin); diff --git a/pluginmanager.cpp b/pluginmanager.cpp index bfa0dfb9..1ce77606 100644 --- a/pluginmanager.cpp +++ b/pluginmanager.cpp @@ -224,6 +224,12 @@ bool Extension::IsViewOnly() const } +bool Extension::IsPaid() const +{ + return BNPluginGetIsPaid(m_object); +} + + string Extension::GetRepository() const { RETURN_STRING(BNPluginGetRepository(m_object)); diff --git a/python/pluginmanager.py b/python/pluginmanager.py index 32d410ea..64d58e69 100644 --- a/python/pluginmanager.py +++ b/python/pluginmanager.py @@ -222,6 +222,11 @@ class Extension: return core.BNPluginGetPackageUrl(self.handle) @property + def is_paid(self) -> bool: + """Boolean True if this plugin requires payment, False otherwise""" + return core.BNPluginGetIsPaid(self.handle) + + @property def author_url(self) -> Optional[str]: """String URL of the plugin author's url""" return core.BNPluginGetAuthorUrl(self.handle) diff --git a/rust/src/repository/plugin.rs b/rust/src/repository/plugin.rs index 1abee1e8..9a8dba91 100644 --- a/rust/src/repository/plugin.rs +++ b/rust/src/repository/plugin.rs @@ -157,6 +157,11 @@ impl Extension { unsafe { BnString::into_string(result as *mut c_char) } } + /// Boolean True if this plugin requires payment, False otherwise + pub fn is_paid(&self) -> bool { + unsafe { BNPluginGetIsPaid(self.handle.as_ptr()) } + } + /// String URL of the plugin author's url pub fn author_url(&self) -> String { let result = unsafe { BNPluginGetAuthorUrl(self.handle.as_ptr()) }; |
