Loading...
Searching...
No Matches
Scripting Provider

Detailed Description

Classes

class  BinaryNinja::ScriptingOutputListener
class  BinaryNinja::ScriptingInstance
class  BinaryNinja::CoreScriptingInstance
class  BinaryNinja::ScriptingProvider

Class Documentation

◆ BinaryNinja::ScriptingOutputListener

class BinaryNinja::ScriptingOutputListener

Public Member Functions

 ScriptingOutputListener ()
BNScriptingOutputListenerGetCallbacks ()
virtual void NotifyOutput (const std::string &text)
virtual void NotifyWarning (const std::string &text)
virtual void NotifyError (const std::string &text)
virtual void NotifyInputReadyStateChanged (BNScriptingProviderInputReadyState state)

Constructor & Destructor Documentation

◆ ScriptingOutputListener()

ScriptingOutputListener::ScriptingOutputListener ( )

Member Function Documentation

◆ GetCallbacks()

BNScriptingOutputListener & BinaryNinja::ScriptingOutputListener::GetCallbacks ( )
inline

◆ NotifyOutput()

void ScriptingOutputListener::NotifyOutput ( const std::string & text)
virtual

Reimplemented in ScriptingConsole.

◆ NotifyWarning()

void ScriptingOutputListener::NotifyWarning ( const std::string & text)
virtual

Reimplemented in ScriptingConsole.

◆ NotifyError()

void ScriptingOutputListener::NotifyError ( const std::string & text)
virtual

Reimplemented in ScriptingConsole.

◆ NotifyInputReadyStateChanged()

void ScriptingOutputListener::NotifyInputReadyStateChanged ( BNScriptingProviderInputReadyState state)
virtual

Reimplemented in ScriptingConsole.

◆ BinaryNinja::ScriptingInstance

class BinaryNinja::ScriptingInstance

Public Member Functions

virtual BNScriptingProviderExecuteResult ExecuteScriptInput (const std::string &input)=0
virtual BNScriptingProviderExecuteResult ExecuteScriptInputFromFilename (const std::string &filename)=0
virtual void CancelScriptInput ()
virtual void ReleaseBinaryView (BinaryView *view)
virtual void SetCurrentBinaryView (BinaryView *view)
virtual void SetCurrentFunction (Function *func)
virtual void SetCurrentBasicBlock (BasicBlock *block)
virtual void SetCurrentAddress (uint64_t addr)
virtual void SetCurrentSelection (uint64_t begin, uint64_t end)
virtual std::string CompleteInput (const std::string &text, uint64_t state)
virtual void Stop ()
void Output (const std::string &text)
void Warning (const std::string &text)
void Error (const std::string &text)
void InputReadyStateChanged (BNScriptingProviderInputReadyState state)
BNScriptingProviderInputReadyState GetInputReadyState ()
void RegisterOutputListener (ScriptingOutputListener *listener)
void UnregisterOutputListener (ScriptingOutputListener *listener)
std::string GetDelimiters ()
void SetDelimiters (const std::string &delimiters)
Public Member Functions inherited from BinaryNinja::CoreRefCountObject< BNScriptingInstance, BNNewScriptingInstanceReference, BNFreeScriptingInstance >
 CoreRefCountObject ()
virtual ~CoreRefCountObject ()
BNScriptingInstanceGetObject () const
void AddRef ()
void Release ()
void AddRefForRegistration ()
void ReleaseForRegistration ()
void AddRefForCallback ()
void ReleaseForCallback ()

Protected Member Functions

 ScriptingInstance (ScriptingProvider *provider)
 ScriptingInstance (BNScriptingInstance *instance)
virtual void DestroyInstance ()

Static Protected Member Functions

static void DestroyInstanceCallback (void *ctxt)
static BNScriptingProviderExecuteResult ExecuteScriptInputCallback (void *ctxt, const char *input)
static BNScriptingProviderExecuteResult ExecuteScriptFromFilenameCallback (void *ctxt, const char *filename)
static void CancelScriptInputCallback (void *ctxt)
static void ReleaseBinaryViewCallback (void *ctxt, BNBinaryView *view)
static void SetCurrentBinaryViewCallback (void *ctxt, BNBinaryView *view)
static void SetCurrentFunctionCallback (void *ctxt, BNFunction *func)
static void SetCurrentBasicBlockCallback (void *ctxt, BNBasicBlock *block)
static void SetCurrentAddressCallback (void *ctxt, uint64_t addr)
static void SetCurrentSelectionCallback (void *ctxt, uint64_t begin, uint64_t end)
static char * CompleteInputCallback (void *ctxt, const char *text, uint64_t state)
static void StopCallback (void *ctxt)

Additional Inherited Members

Public Attributes inherited from BinaryNinja::CoreRefCountObject< BNScriptingInstance, BNNewScriptingInstanceReference, BNFreeScriptingInstance >
std::atomic< int > m_refs
bool m_registeredRef
BNScriptingInstancem_object

Constructor & Destructor Documentation

◆ ScriptingInstance() [1/2]

ScriptingInstance::ScriptingInstance ( ScriptingProvider * provider)
protected

◆ ScriptingInstance() [2/2]

ScriptingInstance::ScriptingInstance ( BNScriptingInstance * instance)
protected

Member Function Documentation

◆ DestroyInstanceCallback()

void ScriptingInstance::DestroyInstanceCallback ( void * ctxt)
staticprotected

◆ ExecuteScriptInputCallback()

BNScriptingProviderExecuteResult ScriptingInstance::ExecuteScriptInputCallback ( void * ctxt,
const char * input )
staticprotected

◆ ExecuteScriptFromFilenameCallback()

BNScriptingProviderExecuteResult BinaryNinja::ScriptingInstance::ExecuteScriptFromFilenameCallback ( void * ctxt,
const char * filename )
staticprotected

◆ CancelScriptInputCallback()

void ScriptingInstance::CancelScriptInputCallback ( void * ctxt)
staticprotected

◆ ReleaseBinaryViewCallback()

void ScriptingInstance::ReleaseBinaryViewCallback ( void * ctxt,
BNBinaryView * view )
staticprotected

◆ SetCurrentBinaryViewCallback()

void ScriptingInstance::SetCurrentBinaryViewCallback ( void * ctxt,
BNBinaryView * view )
staticprotected

◆ SetCurrentFunctionCallback()

void ScriptingInstance::SetCurrentFunctionCallback ( void * ctxt,
BNFunction * func )
staticprotected

◆ SetCurrentBasicBlockCallback()

void ScriptingInstance::SetCurrentBasicBlockCallback ( void * ctxt,
BNBasicBlock * block )
staticprotected

◆ SetCurrentAddressCallback()

void ScriptingInstance::SetCurrentAddressCallback ( void * ctxt,
uint64_t addr )
staticprotected

◆ SetCurrentSelectionCallback()

void ScriptingInstance::SetCurrentSelectionCallback ( void * ctxt,
uint64_t begin,
uint64_t end )
staticprotected

◆ CompleteInputCallback()

char * ScriptingInstance::CompleteInputCallback ( void * ctxt,
const char * text,
uint64_t state )
staticprotected

◆ StopCallback()

void ScriptingInstance::StopCallback ( void * ctxt)
staticprotected

◆ DestroyInstance()

void ScriptingInstance::DestroyInstance ( )
protectedvirtual

◆ ExecuteScriptInput()

virtual BNScriptingProviderExecuteResult BinaryNinja::ScriptingInstance::ExecuteScriptInput ( const std::string & input)
pure virtual

◆ ExecuteScriptInputFromFilename()

virtual BNScriptingProviderExecuteResult BinaryNinja::ScriptingInstance::ExecuteScriptInputFromFilename ( const std::string & filename)
pure virtual

◆ CancelScriptInput()

void ScriptingInstance::CancelScriptInput ( )
virtual

◆ ReleaseBinaryView()

void ScriptingInstance::ReleaseBinaryView ( BinaryView * view)
virtual

◆ SetCurrentBinaryView()

void ScriptingInstance::SetCurrentBinaryView ( BinaryView * view)
virtual

◆ SetCurrentFunction()

void ScriptingInstance::SetCurrentFunction ( Function * func)
virtual

◆ SetCurrentBasicBlock()

void ScriptingInstance::SetCurrentBasicBlock ( BasicBlock * block)
virtual

◆ SetCurrentAddress()

void ScriptingInstance::SetCurrentAddress ( uint64_t addr)
virtual

◆ SetCurrentSelection()

void ScriptingInstance::SetCurrentSelection ( uint64_t begin,
uint64_t end )
virtual

◆ CompleteInput()

std::string ScriptingInstance::CompleteInput ( const std::string & text,
uint64_t state )
virtual

◆ Stop()

void ScriptingInstance::Stop ( )
virtual

◆ Output()

void ScriptingInstance::Output ( const std::string & text)

◆ Warning()

void ScriptingInstance::Warning ( const std::string & text)

◆ Error()

void ScriptingInstance::Error ( const std::string & text)

◆ InputReadyStateChanged()

void ScriptingInstance::InputReadyStateChanged ( BNScriptingProviderInputReadyState state)

◆ GetInputReadyState()

BNScriptingProviderInputReadyState ScriptingInstance::GetInputReadyState ( )

◆ RegisterOutputListener()

void ScriptingInstance::RegisterOutputListener ( ScriptingOutputListener * listener)

◆ UnregisterOutputListener()

void ScriptingInstance::UnregisterOutputListener ( ScriptingOutputListener * listener)

◆ GetDelimiters()

std::string ScriptingInstance::GetDelimiters ( )

◆ SetDelimiters()

void ScriptingInstance::SetDelimiters ( const std::string & delimiters)

◆ BinaryNinja::CoreScriptingInstance

class BinaryNinja::CoreScriptingInstance

Public Member Functions

 CoreScriptingInstance (BNScriptingInstance *instance)
virtual ~CoreScriptingInstance ()
virtual BNScriptingProviderExecuteResult ExecuteScriptInput (const std::string &input) override
virtual BNScriptingProviderExecuteResult ExecuteScriptInputFromFilename (const std::string &filename) override
virtual void CancelScriptInput () override
virtual void ReleaseBinaryView (BinaryView *view) override
virtual void SetCurrentBinaryView (BinaryView *view) override
virtual void SetCurrentFunction (Function *func) override
virtual void SetCurrentBasicBlock (BasicBlock *block) override
virtual void SetCurrentAddress (uint64_t addr) override
virtual void SetCurrentSelection (uint64_t begin, uint64_t end) override
virtual std::string CompleteInput (const std::string &text, uint64_t state) override
virtual void Stop () override
Public Member Functions inherited from BinaryNinja::ScriptingInstance
void Output (const std::string &text)
void Warning (const std::string &text)
void Error (const std::string &text)
void InputReadyStateChanged (BNScriptingProviderInputReadyState state)
BNScriptingProviderInputReadyState GetInputReadyState ()
void RegisterOutputListener (ScriptingOutputListener *listener)
void UnregisterOutputListener (ScriptingOutputListener *listener)
std::string GetDelimiters ()
void SetDelimiters (const std::string &delimiters)
Public Member Functions inherited from BinaryNinja::CoreRefCountObject< BNScriptingInstance, BNNewScriptingInstanceReference, BNFreeScriptingInstance >
 CoreRefCountObject ()
virtual ~CoreRefCountObject ()
BNScriptingInstanceGetObject () const
void AddRef ()
void Release ()
void AddRefForRegistration ()
void ReleaseForRegistration ()
void AddRefForCallback ()
void ReleaseForCallback ()

Additional Inherited Members

Public Attributes inherited from BinaryNinja::CoreRefCountObject< BNScriptingInstance, BNNewScriptingInstanceReference, BNFreeScriptingInstance >
std::atomic< int > m_refs
bool m_registeredRef
BNScriptingInstancem_object
Protected Member Functions inherited from BinaryNinja::ScriptingInstance
 ScriptingInstance (ScriptingProvider *provider)
 ScriptingInstance (BNScriptingInstance *instance)
virtual void DestroyInstance ()
Static Protected Member Functions inherited from BinaryNinja::ScriptingInstance
static void DestroyInstanceCallback (void *ctxt)
static BNScriptingProviderExecuteResult ExecuteScriptInputCallback (void *ctxt, const char *input)
static BNScriptingProviderExecuteResult ExecuteScriptFromFilenameCallback (void *ctxt, const char *filename)
static void CancelScriptInputCallback (void *ctxt)
static void ReleaseBinaryViewCallback (void *ctxt, BNBinaryView *view)
static void SetCurrentBinaryViewCallback (void *ctxt, BNBinaryView *view)
static void SetCurrentFunctionCallback (void *ctxt, BNFunction *func)
static void SetCurrentBasicBlockCallback (void *ctxt, BNBasicBlock *block)
static void SetCurrentAddressCallback (void *ctxt, uint64_t addr)
static void SetCurrentSelectionCallback (void *ctxt, uint64_t begin, uint64_t end)
static char * CompleteInputCallback (void *ctxt, const char *text, uint64_t state)
static void StopCallback (void *ctxt)

Constructor & Destructor Documentation

◆ CoreScriptingInstance()

CoreScriptingInstance::CoreScriptingInstance ( BNScriptingInstance * instance)

◆ ~CoreScriptingInstance()

virtual BinaryNinja::CoreScriptingInstance::~CoreScriptingInstance ( )
inlinevirtual

Member Function Documentation

◆ ExecuteScriptInput()

BNScriptingProviderExecuteResult CoreScriptingInstance::ExecuteScriptInput ( const std::string & input)
overridevirtual

◆ ExecuteScriptInputFromFilename()

BNScriptingProviderExecuteResult CoreScriptingInstance::ExecuteScriptInputFromFilename ( const std::string & filename)
overridevirtual

◆ CancelScriptInput()

void CoreScriptingInstance::CancelScriptInput ( )
overridevirtual

Reimplemented from BinaryNinja::ScriptingInstance.

◆ ReleaseBinaryView()

void CoreScriptingInstance::ReleaseBinaryView ( BinaryView * view)
overridevirtual

Reimplemented from BinaryNinja::ScriptingInstance.

◆ SetCurrentBinaryView()

void CoreScriptingInstance::SetCurrentBinaryView ( BinaryView * view)
overridevirtual

Reimplemented from BinaryNinja::ScriptingInstance.

◆ SetCurrentFunction()

void CoreScriptingInstance::SetCurrentFunction ( Function * func)
overridevirtual

Reimplemented from BinaryNinja::ScriptingInstance.

◆ SetCurrentBasicBlock()

void CoreScriptingInstance::SetCurrentBasicBlock ( BasicBlock * block)
overridevirtual

Reimplemented from BinaryNinja::ScriptingInstance.

◆ SetCurrentAddress()

void CoreScriptingInstance::SetCurrentAddress ( uint64_t addr)
overridevirtual

Reimplemented from BinaryNinja::ScriptingInstance.

◆ SetCurrentSelection()

void CoreScriptingInstance::SetCurrentSelection ( uint64_t begin,
uint64_t end )
overridevirtual

Reimplemented from BinaryNinja::ScriptingInstance.

◆ CompleteInput()

std::string CoreScriptingInstance::CompleteInput ( const std::string & text,
uint64_t state )
overridevirtual

Reimplemented from BinaryNinja::ScriptingInstance.

◆ Stop()

void CoreScriptingInstance::Stop ( )
overridevirtual

Reimplemented from BinaryNinja::ScriptingInstance.

◆ BinaryNinja::ScriptingProvider

class BinaryNinja::ScriptingProvider

Public Member Functions

virtual Ref< ScriptingInstanceCreateNewInstance ()=0
virtual bool LoadModule (const std::string &repository, const std::string &module, bool force)=0
virtual bool InstallModules (const std::string &modules)=0
std::string GetName ()
std::string GetAPIName ()
Public Member Functions inherited from BinaryNinja::StaticCoreRefCountObject< BNScriptingProvider >
 StaticCoreRefCountObject ()
virtual ~StaticCoreRefCountObject ()
BNScriptingProviderGetObject () const
void AddRef ()
void Release ()
void AddRefForRegistration ()
void AddRefForCallback ()
void ReleaseForCallback ()

Static Public Member Functions

static std::vector< Ref< ScriptingProvider > > GetList ()
static Ref< ScriptingProviderGetByName (const std::string &name)
static Ref< ScriptingProviderGetByAPIName (const std::string &apiName)
static void Register (ScriptingProvider *provider)

Protected Member Functions

 ScriptingProvider (const std::string &name, const std::string &apiName)
 ScriptingProvider (BNScriptingProvider *provider)

Static Protected Member Functions

static BNScriptingInstanceCreateInstanceCallback (void *ctxt)
static bool LoadModuleCallback (void *ctxt, const char *repository, const char *module, bool force)
static bool InstallModulesCallback (void *ctxt, const char *modules)

Additional Inherited Members

Public Attributes inherited from BinaryNinja::StaticCoreRefCountObject< BNScriptingProvider >
std::atomic< int > m_refs
BNScriptingProviderm_object

Constructor & Destructor Documentation

◆ ScriptingProvider() [1/2]

BinaryNinja::ScriptingProvider::ScriptingProvider ( const std::string & name,
const std::string & apiName )
protected

◆ ScriptingProvider() [2/2]

ScriptingProvider::ScriptingProvider ( BNScriptingProvider * provider)
protected

Member Function Documentation

◆ CreateInstanceCallback()

BNScriptingInstance * ScriptingProvider::CreateInstanceCallback ( void * ctxt)
staticprotected

◆ LoadModuleCallback()

bool ScriptingProvider::LoadModuleCallback ( void * ctxt,
const char * repository,
const char * module,
bool force )
staticprotected

◆ InstallModulesCallback()

bool ScriptingProvider::InstallModulesCallback ( void * ctxt,
const char * modules )
staticprotected

◆ CreateNewInstance()

virtual Ref< ScriptingInstance > BinaryNinja::ScriptingProvider::CreateNewInstance ( )
pure virtual

◆ LoadModule()

virtual bool BinaryNinja::ScriptingProvider::LoadModule ( const std::string & repository,
const std::string & module,
bool force )
pure virtual

◆ InstallModules()

virtual bool BinaryNinja::ScriptingProvider::InstallModules ( const std::string & modules)
pure virtual

◆ GetName()

string ScriptingProvider::GetName ( )

◆ GetAPIName()

string ScriptingProvider::GetAPIName ( )

◆ GetList()

vector< Ref< ScriptingProvider > > ScriptingProvider::GetList ( )
static

◆ GetByName()

Ref< ScriptingProvider > ScriptingProvider::GetByName ( const std::string & name)
static

◆ GetByAPIName()

Ref< ScriptingProvider > ScriptingProvider::GetByAPIName ( const std::string & apiName)
static

◆ Register()

void ScriptingProvider::Register ( ScriptingProvider * provider)
static