summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2025-10-02[ObjC] Add support for removing runtime calls that perform retain count ↵Mark Rowe
operations A new activity is added that will remove calls to `objc_retain`, `objc_release`, `objc_autorelease`, and related functions. It is disabled by default due to the fact it changes the semantics of the code. It can be enabled on a per-function basis via the Function Settings context menu or command palette entry. Alternatively, it can be enabled in Open with Options or in user settings if a user would prefer it be on for an entire file or for all files they open. For now the activity is only eligible within arm64 binaries. Supporting x86_64 will require matching some slightly different IL patterns.
2025-10-02Fix Rust formattingMark Rowe
2025-10-02[ObjC] Silence some more unnecessary loggingMark Rowe
2025-10-02[Rust] Add support for activity eligibility predicates involving platformsMark Rowe
2025-10-02[MachO] Tweak handling of LC_FUNCTION_STARTSMark Rowe
`LC_FUNCTION_STARTS` includes both functions and jump tables. We want to avoid calling `AddFunctionForAnalysis` on jump tables since it can result in a function being created at the jump table's location with a bogus body. We already skip adding functions for entries in `LC_FUNCTION_STARTS` if the lifting of their first few bytes end up including `LLIL_UNDEF`. However, arm64 intentionally lifts `udf` instructions (i.e., opcodes in the Permanently Undefined range) to `LLIL_TRAP` in order to preserve the immediate portion of the instruction. To address this, `MachoView::IsValidFunctionStart` now returns false if the first lifted instruction is `LLIL_TRAP` in addition to when the lifting contains `LLIL_UNDEF`.
2025-10-02Fix finding binaryninjacore for non-internal cmake buildsJosh Ferrell
2025-10-01Add MPL-2.0 to accepted licensesMason Reed
2025-10-01[WARP] Enhanced network supportMason Reed
2025-10-01Cleanup for some container format handling.Brian Potchik
2025-10-01Ensure that all members of LinearView and HexEditor are initializedMark Rowe
Most members were initialized within the constructor, but a couple were only initialized later and could in some cases be accessed before being initialized. Members of types without default constructors are now initialized via default member initializers unless they're initialized in the class's member initializer list.
2025-10-01better handling for when utf8 decoding failsJordan Wiens
2025-09-30Make Project::{from_raw,ref_from_raw} pubJosh Ferrell
2025-09-30Initial support for opening container formats.Brian Potchik
2025-09-30Fix rust api formatting warningsJosh Ferrell
2025-09-29Fix rust warnings about lifetimes introduced by 1.89.0Josh Ferrell
2025-09-29Allow generating and linking to stubs from cmakeJosh Ferrell
2025-09-29Fix Rust LowLevelILFunction owner function methodBrandon Miller
LowLevelILFunction objects can be constructed without a owner function. BNGetLowLevelILOwnerFunction can return NULL and must be checked before creating a Function object.
2025-09-29Rust APIs needed for guided analysis modeBrandon Miller
Required for implementing guided analysis mode in custom implementations of analyze_basic_blocks
2025-09-29Rust binding for LLVM MC disassemblerBrandon Miller
2025-09-29Treat .got.plt as read-only for HexagonBrandon Miller
This allows types to propagate to thunks in cases where there are GOT entries for internal functions
2025-09-29Make rust il.undefined return a ValueExpr for use as a sub-exprBrandon Miller
2025-09-29Apply platform types on Hexagon statically linked binariesBrandon Miller
2025-09-29Add a new line disassembly text tokenBrandon Miller
2025-09-29Rust bindings for custom basic block analysisBrandon Miller
2025-09-26[ObjC] Don't assume that all calls to objc_msgSend have parametersMark Rowe
2025-09-25Sort table views in the shared cache / kernel cache triage views by address ↵Mark Rowe
by default The table views previously visually suggested they were being sorted by address, but in practice they were not sorted until the user set an explicit sort order by clicking on a column header.
2025-09-25[ObjC] Don't log when encountering an objc_msgSendSuper2 call from Swift codeMark Rowe
2025-09-25[AArch64] Update disassembler based on 2025-06 ARM ISA dataMark Rowe
Alongside this I also added support for decoding: * LDR / STR (table) * PMULLB / PMULLT * ABS / CNT / CTZ * SMIN / SMAX / UMIN / UMAX * RPRFM * PSEL Note that while these instructions will now be disassembled, they are not yet lifted to LLIL. Additionally, I fixed a number of errors in the decoding of some less commonly occurring instructions.
2025-09-24Fix line formatting of unicode stringsJosh Ferrell
2025-09-24Fix HighLevelILInstruction CoreArrayProvider using instr index instead of ↵Josh Ferrell
expr index
2025-09-22small documentation update for llil call and call_stack_adjust instructionsJordan Wiens
2025-09-22Fix numbering in Enterprise client and server licenses.Alexander Taylor
1. In the client license, we refer to sections "6 through 14" in section 2, but there are only 13 sections. This has been updated. 2. In the server license, an extra newline caused numbering to be wrong for all other sections past section 3. This has been corrected.
2025-09-22[armv7] Add support for R_ARM_PC24 relocationNick Shipp
2025-09-18Remove malware quip in bug report templatefosdick.io
Removed instruction for password protection when uploading malware.
2025-09-18fix ldrsw lift to sign extend in certain encodingsyrp
2025-09-17[Python] Use IL-specific types in return type annotations for get_basic_block_attbodt
2025-09-17[ObjC] Propagate type information from calls to `[super init]`Mark Rowe
Calls to `objc_msgSendSuper2` with a selector in the `init` family are detected and their arguments are analyzed to determine the receiver class. A call type adjustment is added to update the return type. This handles most calls to `[super init]` from Objective-C code as the compiler generates a straightforward code sequence for these calls. Some calls from Swift are handled, but the Swift compiler generates more varied code so additional work is needed for complete coverage.
2025-09-17[Rust] Add TypeBuilder::set_child_typeMark Rowe
2025-09-17Fix a Rust formatting issueMark Rowe
2025-09-17[DSC] Ignore .a2s files when loading a shared cacheMark Rowe
These files are present alongside iOS 26 shared caches. Explicitly ignoring them avoids an error being logged to the console.
2025-09-17[DSC] Rework handling of .symbols files to be compatible with iOS 15Mark Rowe
In some iOS 15 caches, the .symbols file's mapping has an address of 0. This would cause it to be returned by `SharedCache::GetEntryContaining` and loaded into the view. The .symbols file contains the local symbol tables for images in the shared cache. It is not intended to be mapped into the same address space as the rest of the shared cache. `SharedCache` now tracks the symbols cache entry separately from other entries. A dedicated `VirtualMemory` region is used when accessing the data it contains. This could be a `FileAccessor`, but that would require additional changes within `SharedCacheMachOHeader`. `SharedCacheMachOProcessor` now directly accesses the local symbols cache entry rather than needing to search for it.
2025-09-17[DSC] Support relative direct selectors in older shared cache versionsMark Rowe
Prior to macOS 13 / iOS 16, the base offset to use for relative direct selector references within Objective-C message lists was stored within the `__TEXT,__objc_opt_ro` section of /usr/lib/libobjc.A.dylib.
2025-09-17[MachO] Populate external links with library imports for files in projectsMark Rowe
A mapping from imported symbol names to libraries is added to metadata. This is used to populate external links for files within projects, following the lead of `PEView`.
2025-09-15Deprecate some Rust MediumLevelILFunction methods in favor of Function ↵Josh Ferrell
implementations
2025-09-11Add Apple arm64 syscall calling convention to Apple's platformsmostobriv
2025-09-11Docs grammar and spelling fixesJosh Ferrell
2025-09-11Update docs around behavior of "Save As"Josh Ferrell
2025-09-11Added new IL attribute ILTransparentCopyHongyu Chen
2025-09-11add support for toggling views with tab in graph view tooJordan Wiens
2025-09-09Fix broken copyright in docs.Alexander Taylor