summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
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
2025-05-26Fix crash when exporting DWARF failsJosh Ferrell
2025-05-23add cross-referencing to docs for save and create_databaseJordan Wiens
2025-05-23Add UI action and API to control expression foldingRusty Wagner
2025-05-23Fix ChoiceField docs, add .default getter/setterJosh Ferrell
2025-05-23Fix spurious cross-reference updates during startup initialization. Save the ↵Brian Potchik
polar bears.
2025-05-23Add aliases for the RTTI/VFT analysis activities.Brian Potchik
2025-05-23Add 'Remove from Recent Files' action to the context menu for the recent ↵Brian Potchik
files list.
2025-05-23[RTTI] Fix exception in binary with a erroneous class hierarchy descriptorMason Reed
2025-05-23[RTTI] Fix typo in some log callsMason Reed
2025-05-22Bump abi version for new apiGlenn Smith
2025-05-22Fix formatting nullptrGlenn Smith
2025-05-22Fix Ref<T> and Confidence<T> formattersGlenn Smith
2025-05-22Add fmt printer for Ref<Type>Glenn Smith
2025-05-22Add TypeContainer::GetEmptyTypeContainerGlenn Smith
2025-05-22[RTTI] Catch uncaught exceptions to let analysis finish in the event of an ↵Mason Reed
thrown exception Probably should have done this sooner, just lets the user continue analysis, rtti exceptions are continuable from the view of analysis.