summaryrefslogtreecommitdiff
path: root/rust
AgeCommit message (Collapse)Author
2025-11-03Add helpers for whether a function is exported.Alexander Taylor
2025-10-30Fix rust api formattingJosh Ferrell
2025-10-29[Rust] Fix typo in doc commentMason Reed
2025-10-29[Rust] Update repository API following updated Core API'sMason Reed
2025-10-29Refactor Plugin Load/Management to support upcoming changes0cyn
2025-10-23[Rust] Misc formattingMason Reed
2025-10-23Support bitfields in type systemMason Reed
Also adds support for parsing bitfields in PDB, DWARF and SVD plugins WIP: API needs to be considered more, also need to find type related apis that may need to be rethought.
2025-10-22Add setter for BB analysis context max_size_reachedBrandon Miller
Add setter for Python and rust BasicBlockAnalysisContext.max_size_reached
2025-10-22[Rust] Misc formattingMason Reed
2025-10-22[Rust] Misc clippy lintsMason Reed
2025-10-22[Rust] Impl `Debug` for `DownloadProvider`Mason Reed
2025-10-22[Rust] Add GET and POST helper functions for `DownloadInstance`Mason Reed
2025-10-22[Rust] Expose a non `log` specific function for sending logs to a `Logger`Mason Reed
This allows you to reference multiple different loggers without setting a global logger instance using `Logger::init`.
2025-10-22[Rust] Fix custom `SecretsProvider` impl requiring data to be passed back in ↵Mason Reed
`get_data` We want to provide no value in the case of the key not having an associated value
2025-10-22[Rust] Refactor download provider module to allow for custom implementationsMason Reed
2025-10-21Add derived strings and string recognizer APIRusty Wagner
2025-10-12[WARP] Improve UX surrounding removal of matched functionsMason Reed
- Adds Python API to remove matched function - Adds command + UI actions to remove matched function - Adds command + UI actions to ignore function in subsequent matches
2025-10-12Improve error handling in project apisJosh Ferrell
2025-10-07[Rust] Update the workflow example following API changesMason Reed
2025-10-07[Rust] Implement custom data renderer APILukBukkit
Also adds an example plugin and misc rust fixes / documentation. This is a continuation of https://github.com/Vector35/binaryninja-api/pull/6721 Co-authored-by: rbran <lgit@rubens.io>
2025-10-07[Rust] Fix save file dialog not respecting default file pathMason Reed
Fixes https://github.com/Vector35/binaryninja-api/issues/7268
2025-10-02[Rust] Fix misc typoMason Reed
2025-10-02[Rust] Improvements to LLIL flag and intrinsic operationsJames Johnson
2025-10-02[Rust] Add support for activity eligibility predicates involving platformsMark Rowe
2025-09-30Make Project::{from_raw,ref_from_raw} pubJosh Ferrell
2025-09-30Fix rust api formatting warningsJosh Ferrell
2025-09-29Fix rust warnings about lifetimes introduced by 1.89.0Josh Ferrell
2025-09-29Allow generating and linking to stubs from cmakeJosh Ferrell
2025-09-29Fix Rust LowLevelILFunction owner function methodBrandon Miller
LowLevelILFunction objects can be constructed without a owner function. BNGetLowLevelILOwnerFunction can return NULL and must be checked before creating a Function object.
2025-09-29Rust APIs needed for guided analysis modeBrandon Miller
Required for implementing guided analysis mode in custom implementations of analyze_basic_blocks
2025-09-29Rust binding for LLVM MC disassemblerBrandon Miller
2025-09-29Make rust il.undefined return a ValueExpr for use as a sub-exprBrandon Miller
2025-09-29Add a new line disassembly text tokenBrandon Miller
2025-09-29Rust bindings for custom basic block analysisBrandon Miller
2025-09-24Fix HighLevelILInstruction CoreArrayProvider using instr index instead of ↵Josh Ferrell
expr index
2025-09-17[Rust] Add TypeBuilder::set_child_typeMark Rowe
2025-09-17Fix a Rust formatting issueMark Rowe
2025-09-15Deprecate some Rust MediumLevelILFunction methods in favor of Function ↵Josh Ferrell
implementations
2025-09-07[Rust] Support pointer base types and offsetsLukBukkit
2025-09-03Fix user stack var rust APIsJosh Ferrell
2025-09-01Add option to build rust api without linking to coreJosh Ferrell
2025-08-27Rewrite Obj-C workflow in RustMark Rowe
This is functionally equivalent to the previous workflow_objc, with the following changes: 1. It mutates the `core.function.metaAnalysis` workflow rather than registering a new named workflow. The activities now all check for the presence of the Objective-C metadata added by `ObjCProcessor` to determine whether they should do work, rather than relying on `MachoView` to override the function workflow when Objective-C metadata is present. This fixes https://github.com/Vector35/binaryninja-api/issues/6779. 2. The auto-inlining of `objc_msgSend` selector stub functions is performed in a separate activity from the processing of `objc_msgSend` call sites. The selector stub inlining activity is configured so that it does not run in `DSCView` as the shared cache needs different behavior for stub functions more generally that `SharedCacheWorkflow` already provides. 3. The way that types like `id` and `SEL` are referenced is fixed so that they show up as `id` rather than `objc_struct*`. This also replaces the Objective-C portion of the shared cache's workflow, and incorporates several bug fixes that had been applied to it but not the standalone Objective-C workflow.
2025-08-27[Rust] Fix a couple of oversights in the APIMark Rowe
1. Some SSA-specific functions are now implemented on `LowLevelILFunction<M, SSA>` rather than `Ref<LowLevelILFunction<M, SSA>>`. 2. A lifting helper for `LLIL_TAILCALL` is added to `LowLevelILFunction`. 3. `PossibleValueSet::ImportedAddressValue` now holds the value.
2025-08-27[Rust] Add LowLevelILFunction::{get_ssa_register_value, get_ssa_flag_value}Mark Rowe
These are available on `LowLevelILFunction<M, SSA>`.
2025-08-20[Rust] Fix misc inconsistencies in `2ba29fd`Mason Reed
2025-08-20[Rust] Add project path file retrieval related functionsMason Reed
2025-08-20Deprecate Workflow::Instance in favor of Workflow::Get and Workflow::GetOrCreateMark Rowe
Calls to `Workflow::Instance` that were looking up a built-in workflow name are updated to use `Workflow::Get`. Others use `Workflow::GetOrCreate`.
2025-08-14[Mac] Consistently specify rpaths for plug-insMark Rowe
C++ plug-ins now consistently use the `plugin_rpath` or `ui_plugin_rpath` macros to ensure they have `SKIP_BUILD_RPATH` set when building on Mac (i.e., no `LC_RPATH` is added). Rust plug-ins have their build.rs updated to only specify `-Wl,-rpath` when building for Linux. It is not needed on macOS. On macOS we instead explicitly specify an `@rpath`-relative install name. This doesn't change any behavior, but avoids leaving an absolute path as the library's install name and is consistent with CMake's behavior for C++ plug-ins.
2025-08-13[Rust] Add builder API for creating workflowsMark Rowe
`Workflow::new` is replaced by `Workflow::build` that returns a `Builder` type that supports the operations that mutate a workflow, such as registering activities. `Workflow::instance` is replaced by `Workflow::get` to make clear that it is intended to look up an existing workflow. `Workflow::cloned` is introduced to wrap the common pattern of retrieving an existing workflow and cloning it with the same name in order to modify it. `Builder::activity_before` / `Builder::activity_after` are introduced to wrap the common pattern of registering an activity then inserting it before or after a given activity.
2025-08-13[Rust] Add a type-safe builder API for Activity configurationMark Rowe
This makes it possible to see what structure the configuration takes and eliminates errors due to typos in JSON string literals.