summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2025-05-12[Rust] Add `CoreRegister` name to the `Debug` implMason Reed
2025-05-12[Rust] Remove unneeded mut from Architecture trait signaturesMason Reed
These are never expressed, just adds another unneeded constraint on the impl
2025-05-12[Rust] Support SSA form properly in low level ILMason Reed
2025-05-12[Rust] Fix misc typosMason Reed
2025-05-12[Rust] Flow graph API improvementsMason Reed
- Fixed some misc bugs - Added real FlowGraphEdge type - Added accessors for node edges - Added interaction handler to the flow graph example to dump the flow graph to stdin - Split out the flow graph API into smaller files
2025-05-12[Rust] Misc cleanupMason Reed
2025-05-12[Rust] Implement custom interactive handlerrbran
2025-05-12[Rust] Add doc comments for undo actionsMason Reed
2025-05-12[Rust] Implement `LanguageRepresentation` and `LineFormatter`rbran
2025-05-12[Rust] Improve `FileAccessor`Mason Reed
- Add unit tests - Expose read/write functionality - Add some much needed documentation when passing to memory map
2025-05-12[Rust] Metadata API improvementsMason Reed
- Don't use Result for some or none values - Fix freeing of key value store objects - Improve ergonomics a little bit - Add unit tests
2025-05-12[Rust] Construct a `SectionBuilder` from a `Section`Mason Reed
2025-05-12[Rust] Correct impls for `Section`Mason Reed
Previously we were comparing the section raw pointer and hashing it
2025-05-12[Rust] Retain core string for section stringsMason Reed
Might want to key off the section string in the core, so we should give it back as a `BnString`
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