com.pnfsoftware.jeb.core.IEnginesContext |
A context for JEB engines. Engines produce events and relay events from other components under
their supervision. The primary task of JEB engines is to manage projects. All engines contexts
are managed by the single instance core
context. In practice, one single
engines context will exist per JEB instance. The engines context provides access to:
- JEB projects
- top-level engines plugins, including parsers
- other top-level managers, such as the type library manager or the code signature manager
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
abstract void |
clearUnloadedProject()
Clear all unloaded projects from the project list.
| ||||||||||
abstract void |
close()
Close the context.
| ||||||||||
abstract CodelessSignatureManager |
getCodelessSignatureManager()
Retrieve the codeless signature manager managed by this context.
| ||||||||||
abstract ICoreContext |
getCoreContext()
Retrieve the JEB Core that instantiated this context.
| ||||||||||
abstract IDataProvider |
getDataProvider()
Get a reference to the DAO.
| ||||||||||
abstract List<IDebuggerUnitIdentifier> |
getDebuggerUnitIdentifiers()
Retrieve the list of identifiers specifically for debugger units.
| ||||||||||
abstract List<IEnginesPlugin> |
getEnginesPlugins()
Retrieve a list of engines plugins (internal modules, third party plugins).
| ||||||||||
abstract ExecutorService |
getExecutorService()
Get the executor service used by this context.
| ||||||||||
abstract IRuntimeProject |
getMainProject()
Retrieve the main project, that is, the first project.
| ||||||||||
abstract List<INativeDecompilerPlugin<?>> |
getNativeDecompilerPlugins()
Retrieve the list of disassembler plugins.
| ||||||||||
abstract List<INativeDisassemblerPlugin<?>> |
getNativeDisassemblerPlugins()
Retrieve the list of disassembler plugins.
| ||||||||||
abstract NativeSignatureDBManager |
getNativeSignatureDBManager()
Retrieve the native signature DB manager managed by this context.
| ||||||||||
abstract INet |
getNetworkUtility()
Retrieve a network utility object used by this engines context.
| ||||||||||
abstract IPluginManager |
getPluginManager()
Get the plugin manager.
| ||||||||||
abstract IRuntimeProject |
getProject(int index)
Get a project by index.
| ||||||||||
abstract IRuntimeProject |
getProject(String key)
Get a project by key.
| ||||||||||
abstract File |
getProjectFile(String key)
Retrieve the file backing a loaded or unloaded project.
| ||||||||||
abstract List<IRuntimeProject> |
getProjects()
Retrieve a copy of the list of projects currently loaded within this context.
| ||||||||||
abstract IPropertyManager |
getPropertyManager()
Get the property manager for this engines context.
| ||||||||||
abstract TypeLibraryService |
getTypeLibraryService()
Retrieve the type library service managed by this context.
| ||||||||||
abstract IUnitIdentifier |
getUnitIdentifier(String type)
Retrieve an identifier by
type . | ||||||||||
abstract List<IUnitIdentifier> |
getUnitIdentifiers()
Retrieve the list of all identifiers that projects managed by this context may have access
to.
| ||||||||||
abstract boolean |
hasProjects()
Determine whether some projects are loaded within this engines context.
| ||||||||||
abstract boolean |
isIdentifierEnabled(IUnitIdentifier identifier)
Determine if an identifier is enabled.
| ||||||||||
abstract IRuntimeProject |
loadProject(String key, boolean projectMustExist, IProgressCallback callback)
Load an existing project or create a new project.
| ||||||||||
abstract IRuntimeProject |
loadProject(String key)
Load an existing project or create a new project.
| ||||||||||
abstract IRuntimeProject |
loadProject(String key, IProgressCallback callback)
This method is deprecated.
use
loadProject(String, boolean, IProgressCallback) instead
| ||||||||||
abstract boolean |
saveProject(String projectKey, String persistenceKey, Map<String, Object> optionalParameters, IProgressCallback callback)
Save the state of a project (including artifacts and all units) to the project database.
| ||||||||||
abstract boolean |
saveProject(String key)
Save the state of a project (including artifacts and all units) to the project database.
| ||||||||||
abstract boolean |
setIdentifierEnabled(IUnitIdentifier identifier, boolean enabled)
Enable or disable an identifier.
| ||||||||||
abstract String |
unitProperty(String unitType, String propertyName)
Convenience method to generate unit properties.
| ||||||||||
abstract boolean |
unloadProject(String key, boolean clear)
Unload a project and optionally clear its entry from the project list.
| ||||||||||
abstract boolean |
unloadProject(String key)
Unload a project.
| ||||||||||
abstract void |
unloadProjects()
Unload all projects.
| ||||||||||
abstract void |
unloadProjects(boolean clear)
Unload all projects and optionally clear entries from the project list.
|
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From interface
com.pnfsoftware.jeb.util.events.IEventSource
|
Clear all unloaded projects from the project list.
Note: The project list allows for rapid reloading of previously loaded projects.
Close the context. All projects will be unloaded; changes will not be persisted.
Retrieve the codeless signature manager managed by this context.
Retrieve the JEB Core that instantiated this context.
Get a reference to the DAO.
Retrieve the list of identifiers specifically for debugger units.
Retrieve a list of engines plugins (internal modules, third party plugins).
Get the executor service used by this context. Clients may use it to schedule third-party tasks.
Retrieve the main project, that is, the first project. This method throws if there is no project opened in this engines context.
IllegalStateException | if there is no main project |
---|
Retrieve the list of disassembler plugins.
Retrieve the list of disassembler plugins.
Retrieve the native signature DB manager managed by this context.
Retrieve a network utility object used by this engines context. The network object is configured to use the proxy specified by the owner Core context's properties.
Get the plugin manager. This method will return null if this context does not offer a plugin manager.
Note: JEB demo builds do not support plugins.
Get a project by index.
index | 0-based index |
---|
Get a project by key.
key | mandatory project key |
---|
Retrieve the file backing a loaded or unloaded project. The file may not exist or the project may not be backed by a filesystem file, in which case this method will return null.
key | project key |
---|
IOException | on I/O exception |
---|
Retrieve a copy of the list of projects currently loaded within this context.
Get the property manager for this engines context.
Retrieve the type library service managed by this context.
Retrieve an identifier by type
.
type | identifier type (recall that decompilers are prefixed with
pfxTypeDecompiler and debuggers with
pfxTypeDebugger ) |
---|
Retrieve the list of all identifiers that projects managed by this context may have access to.
Determine whether some projects are loaded within this engines context.
Determine if an identifier is enabled.
identifier | the identifier |
---|
Load an existing project or create a new project.
key | an existing or new project key (the final project key may be different); may be a path to a JDB2 file |
---|---|
projectMustExist | if true, the project must exist (that is, the key must reference an existing JDB2 database, else the method will raise) |
callback | an optional callback object fed that will be continuously fed with information regarding the loading status |
IOException | on IO error |
---|---|
SerializationException | on serialization error |
Load an existing project or create a new project.
key | an existing or new project key (the final project key may be different); may be a path to a JDB2 file |
---|
IOException | on IO error |
---|---|
SerializationException | on serialization error |
This method is deprecated.
use loadProject(String, boolean, IProgressCallback)
instead
IOException |
---|
Save the state of a project (including artifacts and all units) to the project database. If the project DB is backed up by a filesystem, the project will be persisted to a JDB2 file.
projectKey | the project key |
---|---|
persistenceKey | optional persistence key; set it to override the current key and persist to a different location |
optionalParameters | opaque dictionary of optional parameters (reserved for internal use) |
callback | an optional callback object that will be continuously fed with information regarding the saving status |
IOException | on IO error |
---|---|
SerializationException | on deserialization error |
Save the state of a project (including artifacts and all units) to the project database. If the project DB is backed up by a filesystem, the project will be persisted to a JDB2 file.
key | the project key |
---|
IOException | on IO error |
---|---|
SerializationException | on deserialization error |
Enable or disable an identifier.
identifier | the identifier |
---|---|
enabled | true to enable the identifier, false otherwise; in the latter case, IUnitIdentifier#canIdentify() will never get called |
Convenience method to generate unit properties. Refer to UnitUtil
for additional
methods.
unitType | unit type |
---|---|
propertyName | property name |
Unload a project and optionally clear its entry from the project list.
key | the project key |
---|---|
clear | if true, the project entry will be removed from the project list |
Unload a project.
key | the project key |
---|
Unload all projects.
Unload all projects and optionally clear entries from the project list.
clear | if true, project entries will be removed from the project list |
---|