summaryrefslogtreecommitdiff
path: root/rust/src
AgeCommit message (Collapse)Author
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-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-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.
2025-08-13[Rust] Fix warnings about names that are not snake caseMark Rowe
The names can simply be omitted since they are only mentioned in the declaration of a function pointer.
2025-08-06[Rust] Take download callbacks by reference to avoid boxingMason Reed
2025-08-03[Rust] Misc formattingMason Reed
2025-08-01Add LogForException APIs to pass stack trace information separate from the ↵Rusty Wagner
message
2025-07-30Change rust project APIs to accept "impl AsRef<Path>" instead of "&str" for ↵Josh Ferrell
path arguments
2025-07-29Add MemoryMap::add_unbacked_memory_region to rust apiJosh Ferrell
2025-07-28[Rust] Misc formattingMason Reed
2025-07-28[Rust] Add `BinaryViewExt::image_base`Mason Reed
2025-07-28[Rust] Add docs for what the boolean return value does for some specific ↵Mason Reed
"progress" like callbacks Still need to add more, consider changing the boolean to an enum that describes it better, so we do not need to copy paste docs around.
2025-07-24make fields of LookupTableEntry publicalan
2025-07-22Fix non-clickable force analysis with rust render layer onMason Reed
Fixes https://github.com/Vector35/binaryninja-api/issues/7139
2025-07-17[Rust] Misc fixes / formattingMason Reed
- Fix cmake clean not cleaning target docs - Fix not prioritizing enterprise remote in collab tests - Some misc formatting - Fix incorrect assert in binary loading
2025-07-17[Rust] Misc formatting fixesMason Reed
2025-07-15Add the ability to limit the number of results in the cross reference APIsRusty Wagner
2025-07-15[Rust] Update some testsMason Reed
2025-07-15[Rust] Add `BinaryView::search` and friendsMason Reed
2025-07-15Move LLIL instruction retrieval into the LLIL function where it belongsMason Reed
The python API was kept the same seeing as we are close to the release, will likely start deprecating some of those API's soon.
2025-07-06[Rust] Add `FileMetadata::forget_undo_actions`Mason Reed
Need this for WARP, see next commit
2025-07-06[Rust] Make `ReportCollection::add_*` optionally take a viewMason Reed
To allow for creating reports outside the context of a view
2025-07-06[Rust] Fix typo for `MediumLevelILFunction::live_instruction_for_variable` paramMason Reed
2025-07-06[Rust] Fix MLIL function expression index usage in place of instruction indexMason Reed
Discovered when poking at variable values in WARP
2025-07-04[Rust] Fix double precision expression low level IL definitionMason Reed
2025-07-04[WARP] Fix possible skipped instructions when multiple IL expressions are ↵Mason Reed
appended for a given instruction
2025-07-03[Rust] Fix clippy + rustfmt complaintsMark Rowe
The clippy complaint was a real issue: the doc comment intended for the commented-out `unresolved_indirect_branches` was being interpreted as the start of the doc comment for the following function.
2025-07-04[Rust] Add missing `ADD_OVERFLOW`, `TEST_BIT` and `LLIL_REG_STACK_FREE_REG` ↵Mason Reed
low level IL expressions
2025-07-03api: indirect branch inlining supportRyan Snyder
2025-07-02[Rust] Misc cleanupMason Reed
2025-07-02[Rust] Add missing `LLIL_FLOAT_CONST` low level IL expressionMason Reed
2025-07-02[Rust] Add missing `LLIL_FLAG_GROUP` and `LLIL_FLAG_COND` lifted IL expressionsMason Reed
2025-07-02[Rust] Misc formattingMason Reed
2025-07-02[Rust] Add note for `Function::has_explicitly_defined_type`Mason Reed
2025-07-02[Rust] Misc interaction handler fixesMason Reed
2025-07-02[Rust] Misc things for WARPMason Reed
- Make LowLevelILFunction::from_raw public" - Add a helper to get lifted il from flow graph
2025-07-02[Rust] Fix load options string not being terminatedMason Reed
2025-07-02[Rust] Remove redundant `Result` from `Project::folders`Mason Reed
Also make `Project::file_by_path` take a `Path`.
2025-07-02[Rust] Add some additional impls for ergonomicsMason Reed
2025-07-02[Rust] Make `ProjectFile::path_on_disk` return `Option<PathBuf>`Mason Reed
This is what the API is trying to express, we should just Do The Right Thing:tm: