summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2025-08-13[WARP] Use type-safe activity configurationMark Rowe
2025-08-13[SVD] Use type-safe activity configurationMark Rowe
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-13make type library questions headersJordan Wiens
2025-08-13Fix round and single-operand uses of COMBINE in Pseudo-CGalen Williamson
2025-08-12Docs: fix example descriptionsGlenn Smith
2025-08-12Docs: use new log apiGlenn Smith
2025-08-12Docs: reorder to have python first in multi-lang sectionsGlenn Smith
2025-08-12Docs: Note about AnalysisContext vs FunctionGlenn Smith
2025-08-08Update remaining projects to C++20Mark Rowe
2025-08-07Fix clean builds when CMake is using Unix MakefilesMark Rowe
The `$<TARGET_FILE:binaryninjaapi>` syntax does not do what is intended for Unix Makefiles. In practice there's no reason for this custom command to depend on the `binaryninjaapi` target. The Rust API uses core's C APIs directly rather than via the C++ API, and it already depends on binaryninjacore.h via `RUST_API_SOURCES`. Since it's running `cargo check` and not doing a full compilation this header-only dependency is sufficient.
2025-08-08[WARP] Move symbol and comment application to when matched functions are ↵Mason Reed
inserted Instead of applying symbols and comments in the applier step, we will do it when the matched function is identified. This has the side effect that if you turn off the apply activity names and comments will still be applied, more work to be done later.
2025-08-06[Rust] Take download callbacks by reference to avoid boxingMason Reed
2025-08-05[ELF] Fix a memory leak when parsing .gnu_debugdataMark Rowe
2025-08-05Avoid leaking Relocation instancesMark Rowe
`BNRelocationHandlerDefaultApplyRelocation` / `BNRelocationHandlerApplyRelocation` / `BNRelocationHandlerGetOperandForExternalRelocation` do not take ownership of the reference that is passed to them. Instead they take their own reference to the object. As a result, `Relocation` objects passed into `RelocationHandler::ApplyRelocation` / `CoreRelocationHandler::ApplyRelocation` / `CoreRelocationHandler::GetOperandForExternalRelocation` were being leaked.
2025-08-05[ARM64] Fix lifting of mrs xzr, ... to not reference the xzr registerMark Rowe
ARM64 lifting replaces references to the zero register with constant zeroes. The zero register is not intended to appear in any lifted IL. In the case of the `mrs` instruction, the destination being a zero register means the system register is accessed only for a side-effect, and is not stored anywhere. The lifting is updated to specify no output registers for the intrinsic in that case.
2025-08-03Fix undefined `log_error` in downloadprovider.pyMason Reed
Was causing nightly tests to fail only on windows however which is strange
2025-08-03[Rust] Misc formattingMason Reed
2025-08-01Make the IL iterators real iterators for std::find_ifGlenn Smith
2025-08-01Update IL modification docsGlenn Smith
2025-08-01Support MLIL expr mappings in C++Glenn Smith
2025-08-01Add unflatten workflow example C++ portGlenn Smith
2025-08-01Add log functions for logging the current stack trace without an active ↵Rusty Wagner
exception
2025-08-01Use log_error_for_exception in the Python API to pass tracebacks in the ↵Rusty Wagner
stack trace associated with log messages, instead of creating large mutli-line messages for every exception
2025-08-01Add log_for_exception family of APIs to the Python APIRusty Wagner
2025-08-01Add log message dialog for showing stack tracesRusty Wagner
2025-08-01Add LogForException APIs to pass stack trace information separate from the ↵Rusty Wagner
message
2025-07-31improve focusing in type browserJordan Wiens
2025-07-31fix a recursion bug in the tabsyncingJordan Wiens
2025-07-31add focusandselectfilter for filtereditJordan Wiens
2025-07-31support for multi-language code block tab syncingJordan Wiens
2025-07-31correct fix for s and i hotkeys in type browserJordan Wiens
2025-07-31fix initial focus in type browserJordan Wiens
2025-07-31fixing find hotkey in the typebrowserJordan Wiens
2025-07-30[Rust] Only re-run `cargo check` if inputs have changedMark Rowe
2025-07-30Add dependency tracking to the Python code generationMark Rowe
This ensures that the Python source files are only generated and copied into the output directory if inputs have changed, rather than being done unconditionally.
2025-07-30[CMake] Specify CONFIGURE_DEPENDS for all file(GLOB ..)Mark Rowe
This ensures that CMake detects when files that match the glob are added or removed.
2025-07-30[ARM64] Fix lifting of tbz / tbnz for bits >= 32Mark Rowe
2025-07-30Change rust project APIs to accept "impl AsRef<Path>" instead of "&str" for ↵Josh Ferrell
path arguments
2025-07-29add inverted character constant integer display typeJordan Wiens
2025-07-29Add MemoryMap::add_unbacked_memory_region to rust apiJosh Ferrell
2025-07-29Add support for declarative downstream dependencies to workflow system.Brian Potchik
2025-07-29Added check for sharedobject without program header section start address.Hongyu Chen
2025-07-28[PPC] Make assembler.cpp compile over 30 times fasterMark Rowe
Clang was taking around 30 seconds to compile assembler.cpp on my machine, with most of its time spent in code generation for the global initializer for `lookup`. Changing the map key from `std::string` to `std::string_view` drops compile time to under a second. This is because the compiler no longer has to code gen the allocation, initialization, and moves of 2,100 `std::string`s. `std::string_view` is effectively free to initialize in comparison. While I was here I made the map `static const`. It's not required for the build time improvement, but it is more correct and helped me check that no-one is mutating the map.
2025-07-28[Rust] Misc formattingMason Reed
2025-07-28[Rust] Add `BinaryViewExt::image_base`Mason Reed
2025-07-28[WARP] Fix user annotations being overriden by WARP annotationsMason Reed
Fixes https://github.com/Vector35/binaryninja-api/issues/7194
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.