summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2025-06-09Update type hints/docs for Python IL API changesBrandon Miller
2025-06-06Option to ignore whitespace in searchesGlenn Smith
2025-06-06fix broken link in python docsJordan Wiens
2025-06-06Objective-C Processor: Remove vestigial code tracking whether view was ↵kat
backed by a database
2025-06-06Handle None when querying IL in Python generatorsBrandon Miller
2025-06-05Stack Offset render layer: Use AnnotationToken to fix Edit InstructionGlenn Smith
Fixes #6900
2025-06-05Python: Set interpreter thread name for debuggingGlenn Smith
2025-06-05Fix and add code docs regarding FileMetadata view types vs view namesMason Reed
2025-06-05Fix crash in GNU3 demangler with specific non-mangled stringMason Reed
Fixes https://github.com/Vector35/binaryninja-api/issues/6902 however we still need to figure out what we want to do about the type info names being invalid. There really is not a good way to tell without saying all type info names _must_ be mangled.
2025-06-05Fix running in headless modeMichael Krasnitski
2025-06-05Fix incorrect paths in EFI ResolverMichael Krasnitski
2025-06-04[MachO] Don't add symbols when processing bind fixupsMark Rowe
The target of the bind opcode has its symbol applied when the dynamic symbol table is parsed. This was previously adding a symbol at the fixed-up address with the name of the symbol being bound. This was resulting in dozens of `_OBJC_CLASS_$_NSObject`, `_OBJC_METACLASS_$_NSObject`, and `__objc_empty_cache` symbols being created: one for each `objc_class` that referenced those symbols.
2025-06-04Fix calls to BNFreeString in kernel cache APIAlexander Khosrowshahi
Amends calls to BNFreeString in kernel cache API that were causing `get_macho_header_for_address`, `get_macho_header_for_image`, `get_image_name_for_address`, and `get_name_for_address` to fail. Fixes https://github.com/Vector35/binaryninja-api/issues/6855
2025-06-03Add UI action and API to control early returns in HLILRusty Wagner
2025-06-03Add UI action and API to flip conditions during HLIL restructuringRusty Wagner
2025-06-03[ObjC] Add an explicit reference to a method impl from its selectorMark Rowe
This makes it easier to see the possible message send targets when looking at a call to `objc_msgSend`.
2025-06-03[MachoView] Add support of __init_offsetsObriv Mostov
2025-06-02Add IL for thumb2 CP instructionsjonathanzetier
2025-06-02Update README.mdjonathanzetier
It looks like the build instructions hadn't been updated after the arch plugins were moved back to binaryninja-api.
2025-06-02ARM64 disassembler: fix MSVC compilationjustanotheranonymoususer
2025-05-31[Rust] Retrieve architecture if missing from location passed to ↵Mason Reed
`MediumLevelILFunction::instruction_from_index` Fixes https://github.com/Vector35/binaryninja-api/issues/6876
2025-05-30[Rust] Add `Variable::to_register` helper functionMason Reed
Makes it simpler to get the register from a variable (if it is a register variable)
2025-05-30[Rust] Finish out the `PossibleValueSet` implementation to include range and ↵Mason Reed
lists of values This requires us to allocate on the rust side of the API, this is quite easy to mess up but the usage of it is limited.
2025-05-30[Rust] Express expression vs instruction index for MLIL and HLIL APIsMason Reed
This was done to fix unintended behavior using an instruction or expression index in place of the other. Fixes https://github.com/Vector35/binaryninja-api/issues/6897
2025-05-30[Rust] Map LLIL_UNDEF to LowLevelILExpressionKind::UndefMark Rowe
2025-05-30[Rust] Add support for LLIL_SEPARATE_PARAM_LIST_SSAMark Rowe
2025-05-30[Rust] Add support for LLIL_REG_PHI / LLIL_MEM_PHI / LLIL_FLAG_PHIMark Rowe
2025-05-30[Rust] Support retrieving use / def of SSA registers in LLILMark Rowe
2025-05-30[Rust] Add LowLevelILInstruction::basic_block / ↵Mark Rowe
LowLevelILFunction::basic_block_containing_index
2025-05-30[Rust] Have LowLevelILBlock derive Clone rather than manually implementing itMark Rowe
This is possible now that FunctionMutability and FunctionForm require Copy, and fixes an existing clippy warning about the non-canonical implementation of `clone` on a `Copy` type.
2025-05-30[Rust] Allow mapping between SSA and non-SSA forms of instructions / expressionsMark Rowe
2025-05-30[Rust] Make LowLevelIL{Expression,Instruction} implement CopyMark Rowe
2025-05-30Don't query the template simplifier setting while demangling symbolsPeter LaFosse
2025-05-30[ObjC] Improve naming of arguments to Objective-C methodsMark Rowe
Detect and remove common prefixes used on selectors so that their argument names are more natural. For instance, a selector of `initWithURL:withStagedURL`: now ends up with arguments named `URL` and `stagedURL`, rather than `initWithURL` and `withStagedURL`.
2025-05-30[ObjC] Fix another case where a category's class name was not being resolvedMark Rowe
Handle the case where the `class` field of the category is a direct reference to an external symbol via a bind fixup. In that case, the pointer's value when read from the view is 0. To determine the class name it is necessary to look up the relocation for the pointer's address and parse the class name from the symbol's name.
2025-05-30Misc shared cache improvementsMason Reed
- Removed last use of user object creation in objective-c - Fixed function type info being omitted from certain images loaded automatically - Add TODO about undo action in view init. This is not critical, just a non-actionable warning because of a design flaw I will restate this again for anyone in the future, until the undo action system is thread-safe avoid calling it from any thread other than the main thread, it is very easy to deadlock or cause other issues. That goes for basically all user analysis object creation.
2025-05-29Light unused variable cleanup in Psuedo C/Obj-C Pluginkat
2025-05-29[PseudoObjC] Handle named type references to types that don't existMark Rowe
2025-05-29Detect calls that the Objective-C workflow has rewritten directly to an ↵Mark Rowe
implementation These are detected by their function names having the characteristic `-[ClassName methodName:]` format. Calls to functions with this naming pattern that accept a selector as a second argument are assumed to be `objc_msgSend` calls that the Objective-C workflow rewrote. These calls are formatted identically to other `objc_msgSend` calls with the exception that the selector tokens reference the address of the call target rather than the selector string, so double-clicking on them takes you to the fixed destination of the rewritten call.
2025-05-29Implement a Pseudo Objective-C language representationMark Rowe
This is implemented in the Pseudo C plug-in as it shares 99% of the logic. The Objective-C support is implemented in a subclass of `PseudoCFunction`. The handling of instruction types that the Objective-C representation needs to customize is extracted into virtual functions that the Objective-C subclass overrides. This currently supports: * Rewriting `objc_msgSend` / `objc_msgSendSuper2` with constant selectors to `[receiver message]` notation. * Rewriting calls to `objc_alloc` / `objc_alloc_init` / `objc_new` to the equivalent message send notation. * Rewriting `objc_retain` / `objc_release` and friends to the equivalent message send notation. * Displaying Objective-C class references as their class names rather than `_OBJC_CLASS_$_` symbol names. * Displaying Objective-C string literals as `@"..."`. This works best when used in conjunction with https://github.com/bdash/bn-objc-extras as the reference counting runtime calls add so much clutter.
2025-05-28PR #6757: prefer fp, lr for x29, x30yrp
arm64: prefer fp, lr arm64: update tests to use new reg names, improve windows build
2025-05-28Revert "Fix compilation with MSVC: arm64/disassembler/decode_scratchpad.c"Galen Williamson
This reverts commit cb7c2d3bb716a2e96cf7f127bbf71992a4861907.
2025-05-28[ObjC] Use relative pointer types for members of `objc_method_entry_t`Mark Rowe
They were previously relying on the Objective-C workflow to render the `rptr_t` typedef. Relative pointer types are now a first class citizen and are rendered correctly without any additional work.
2025-05-28Support for Linux x86-64 x32 ABIBrandon Miller
2025-05-28Eliminate jsoncpp usage from the AnalysisContext C++ API object.Brian Potchik
2025-05-27Update decode_scratchpad.cjustanotheranonymoususer
2025-05-27Fix compilation with MSVC: arm64/disassembler/decode_scratchpad.cjustanotheranonymoususer
MSVC shows several warnings, but this one is shown as an error, preventing compilation.
2025-05-27Misc rust formattingMason Reed
2025-05-27update idb_import idb-rs to 0.1.10rbran
2025-05-26Fix analysis state properties to return enums instead of integers.Brian Potchik