summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2025-05-12[Rust] Add section testsMason Reed
2025-05-12[Rust] Reduce usage of `IntoCStr` in function signaturesMason Reed
This is being done to reduce complexity in function signatures, specifically many of the strings we are passing ultimately should be new types themselves instead of "just strings", things such as type ids. Another place which was confusing was dealing with filesystem related APIs, this commit turns most of those params into a stricter `Path` type. This is bringing the rust api more inline with both python and C++, where the wrapper eagerly converts the string into the languages standard string type. Special consideration must be made for symbols or other possible non utf-8 objects. This commit will be followed up with one that adds the `IntoCStr` bound on API's we want to keep as invalid utf-8 so we can for example, get section by name on a section with invalid utf-8.
2025-05-12[Rust] Add string testsMason Reed
2025-05-12[Rust] Rename `AsCStr` to `IntoCStr`Mason Reed
2025-05-12[Rust] Misc clippy lintsMason Reed
2025-05-12[Rust] More cleanup regarding `BnString`Mason Reed
- Removed `to_string` shortcut from `BnString`. - Misc formatting
2025-05-12[Rust] Make `Section::name` return `BnString`Mason Reed
Section names come from the binary itself, we want to preserve the name as is
2025-05-12[Rust] Simplify usage surrounding c stringsMason Reed
`cstring.as_ref().as_ptr() as *const c_char` -> `cstring.as_ptr()` `cstring.as_ref().as_ptr() as *mut _` -> `cstring.as_ptr()` `cstring.as_ptr() as *const c_char` -> `cstring.as_ptr()` With a few fixes for cstrings that might be dropped prematurely.
2025-05-12[Rust] Simplify `BnStrCompatible` traitMason Reed
Followup to https://github.com/Vector35/binaryninja-api/pull/5897/ This simplifies usage of the trait in user code, should just be able to `to_cstr` to get the cstr repr and then call `as_ptr`. Co-authored-by: Michael Krasnitski <michael.krasnitski@gmail.com>
2025-05-12[Rust] Simplify enterprise initializationMason Reed
We don't need to introduce extra global state when the goal is to not release floating licenses in shutdown.
2025-05-12[Rust] Misc clippy lintsMason Reed
2025-05-12[Rust] More cleanupMason Reed
2025-05-12[Rust] Remove unused fileMason Reed
2025-05-12[Rust] Return `String` instead of `BnString` for cases where lossy ↵Mason Reed
conversion can be tolerated Still need to go and audit all usage, but realistically the most important places to give the user control are with symbols, where the data can come from non utf8 sources This is still incomplete, I just looked for usage of -> BnString so any other variant was omitted.
2025-05-12[Rust] Remove Architecture trait bound on LLIL related structuresMason Reed
2025-05-12[Rust] Pretty print LLIL sub expressionsMason Reed
2025-05-12Improve memory permissions concept section in user documentationMason Reed
Fixed formatting and added information regarding the `volatile` annotation and how it impacts analysis Fixes https://github.com/Vector35/binaryninja-api/issues/6697
2025-05-12Fix leak in LowLevelILFunction::AddLabelMapGlenn Smith
2025-05-12Fix python CoreArchitecture not loading intrinsicsGlenn Smith
2025-05-12Add setting to adjust block indicator widthGlenn Smith
2025-05-09[ObjC] Remove shared cache prefix on a log callMason Reed
2025-05-09[ObjC] Retrieve category's class name when class is an external symbolMark Rowe
This also updates the symbol names that are generated when the name cannot be found to include the address in hex rather than decimal so it's easier to navigate to.
2025-05-09[RTTI] Loosen section semantic sanity checks in Itanium RTTI processingMason Reed
We need to do this for RTTI info that resides in DefaultSectionSemantic sections, which will happen for some binaries where the data is placed in non-generic sections.
2025-05-09[RTTI] Handle type names emitted by GCC with a leading `*`Mark Rowe
GCC emits a leading `*` to indicate that the type info is internal and its name can be compared via pointer equality. It is not part of the type name. This was only being handled when followed with `N`, but it can apply to any mangled name. Additionally, this updates some `std::string::find(...) == 0` calls in the adjacent code to use `std::string::rfind(..., 0) == 0` as that bails out of the string comparison as soon as the prefix does not match, rather than continuing to search the entire string.
2025-05-09[RTTI] Handle cxxabi vtables being referenced via RELOC_COPYMark Rowe
32-bit ELF binaries that are dynamically linked to the C++ runtime may use a copy relocation for the vtable. The vtable itself will be defined in the `.bss` section, and the copy relocation will cause the dynamic linker to populate it at load time from the C++ runtime library. Detect this by looking for a symbol pointing to the start of the vtable data, two pointers before the vtable address.
2025-05-10categorize recipes and add new tab recipeJordan Wiens
2025-05-08Implement EFI resolver as a module workflowBrandon Miller
2025-05-08Update EFI resolver GUID renderer for API changesBrandon Miller
2025-05-08misc: formated code and fixed several small issuesZichuan Li
1. Fix code related to SMI handlers 2. also parse handlers registered by SxDispatch and parse them together 3. Set Progress Text properly
2025-05-08Move EFI Resolver to APIZichuan Li
Support all existing features in EFI Resolver, 1. Doesn't support running on existing BNDBs (though we tried to support this in python plugins, it doesn't work well) 2. Perform analysis on MLIL rather than HLIL, previous pattern matching on HLIL constains many false negatives
2025-05-08Change type for TPIDR_EL0 and run the plugin automaticallyZichuan Li
2025-05-08Change types for IDTRZichuan Li
UEFI PEI modules often use IDTR to fetch the pointer to the pointer to EFI_PEI_SERVICES. We can leverage binja's global register type for this
2025-05-07Update BinaryView Python context manager to actually release the BinaryView ↵Brian Potchik
resource.
2025-05-07Fix AssociatedDataStore behaviorJosh Ferrell
2025-05-07Fix data tags added via API not showing in flow graphs until refreshJosh Ferrell
2025-05-07Fix compiler error with g++15Josh Ferrell
2025-05-07[Rust] Fix a pre-existing formatting issue CI is complaining aboutMark Rowe
2025-05-07[Rust] Add Function::variable_typeMark Rowe
2025-05-06Memory map UI improvementsMason Reed
2025-05-06[SharedCache] Add activities to core.function.metaAnalysis rather than a new ↵Mark Rowe
named workflow Activities are registered with a `viewType` predicate to ensure they only run in shared cache views. Adding activities to `core.function.metaAnalysis` lets activities registered by plug-ins run in the shared cache without the plug-ins having to be aware of the shared cache. Work towards #6779.
2025-05-07Correct typos in Function.add_tag docs. Fixes #6796Malware Utkonos
2025-05-06[SharedCache]"Fix" possible deadlock when loading images from the UIMason Reed
This disables the filter for already added images, there is another check when we go to apply so that it fails early but the real issue is the fact this happened at all. Within the Objective-C processor there is a call to `BeginUndoActions` which calls `ExecuteOnMainThreadAndWait`, while the objective-c processor is holding the lock to the controller. To fix this we really need to make the undo action system not call `ExecuteOnMainThreadAndWait` which is deadlock city, to do that really the only solution is to make the `UndoBuffer` thread-safe and remove the calls to execute undo related stuff on the main thread, this will make it so that when a call to `BeginUndoActions` there is no requirement to wait on pending undo actions as they are all submitted immediately.
2025-05-06Add cast to partial var accesses in pseudo C/RustBrandon Miller
Add casts to HLIL_STRUCT_FIELD expressions where the size of the source expression is greater than the size of access
2025-05-05Fix order of constructor arguments in VariableNameAndType.from_identifier ↵Galen Williamson
and .from_core_variable
2025-05-04Add a setting to disable creating a backing memory region for SVD regionsMason Reed
This is apart of https://github.com/Vector35/binaryninja-api/issues/6678
2025-05-04[Rust] Fix a pre-existing formatting issueMark Rowe
CI is complaining about it.
2025-05-04[Rust] Avoid leaking a reference within {Medium,High}LevelILFunction::ssa_formMark Rowe
Return a Ref<_> so that the underlying core object will have its reference count decremented when the caller drops the object.
2025-05-03[SharedCache] Avoid reading header fields outside of the bounds of the headerDaniel Roethlisberger
Use mappingOffset as an upper bound for the header size, and avoid reading any header fields from beyond that offset. Co-authored-by: Mason Reed <mason@vector35.com>
2025-05-02add important concept documentation on IL existingJordan Wiens
2025-05-02[SharedCache] Have VirtualMemoryReader get the address size from the ↵Mark Rowe
underlying VirtualMemory