summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2025-04-09[mips] always show 0 offset in MIPS operands using Register + Offset ↵Galen Williamson
Addressing Mode (including when the register r0 is elided)
2025-04-09Shared cache and kernel cache UI cleanup.Alexander Taylor
One day, these will share more code, but today is not quite that day.
2025-04-09More gracefully ignore MH_FILESET in MachOView.Alexander Taylor
This avoids the 3 errors on view initialization for all supported kernel caches that aren't "real".
2025-04-09Revert "Disable MH_FILESET parsing in Mach-O view"Alexander Taylor
This reverts commit 9169a13c818fc7f3b09246360c31e200b01bda23.
2025-04-09Fix capitalization of AArch64.Alexander Taylor
2025-04-09Remove extra refcount when getting debug info from a bvElykDeer
2025-04-09Add docs for union field resolution; Resolves #6578ElykDeer
2025-04-09Expose AnalysisState through the APIXusheng
2025-04-08Add API to post requests to the workflow machine.Brian Potchik
2025-04-08[SharedCache] Fix exception message causing an exceptionMason Reed
And also removed unneeded VMReader construction in ApplyRegion
2025-04-08Action to push/pull all types to a Type ArchiveGlenn Smith
2025-04-08[aarch64] remove "unknown hint" warningGalen Williamson
2025-04-08Misc rust formattingMason Reed
2025-04-08[ObjC] Handle Objective-C ivars with an offset of 0Mark Rowe
objc-runtime-new.mm mentions an offset of 0 is used for anonymous bitfields. Previously this would throw an exception when attempting to read from offset 0 and the types would not be applied.
2025-04-08Update compilers list requirementsGlenn Smith
2025-04-08Improve MSVC VFT analysis speed and accuracyMason Reed
Also adds more information to the progress text when processing vfts for both msvc and itanium
2025-04-08Add misc cancellation points in RTTI analysisMason Reed
Some missing checks in case there is a billion segments (see .obj files)
2025-04-08[aarch64] lift all LD[1-4]R? and ST[1-4] opcodes, lift ST/LDCLR, ST/LDEOR, ↵Galen Williamson
ST/LDSET, and their variants Also fixes all outstanding issues in arm64test.py, including intrinsics, dc, at, and tlbi
2025-04-08[SharedCache] Fix older BNDBs not updating workflow to use new workflow nameMason Reed
2025-04-08Fix workflow Rust API not returning refcounted objectsMason Reed
IDK why this was not done prior, leaking the returned core activity and workflow object.
2025-04-08[SharedCache] Apply demangled names and types more broadlyMason Reed
Fixes the case of stub functions being applied with mangled names.
2025-04-08Remove notion of image name from objective-c processorMason Reed
This made the macho objective-c processor aware of images and was passed around everywhere, instead we have an overridable section getter that gives the control over the section retrieval to the derived processor. In the case of shared cache this means we can store the image to be processed and then use the header to locate the relevant sections. Fixes: https://github.com/Vector35/binaryninja-api/issues/6594
2025-04-08[SharedCache] Apply objc_msgSend call type overrides in more placesMark Rowe
`fixObjCCallTypes` is updated to handle tail calls as well as regular calls. Additionally, if the selector address is not valid it now looks for the `sel_` symbols that `DSCObjCProcessor::ReadMethodList` adds for selectors whose names reside in regions that are not yet mapped. This allows call type overrides to be applied even when a selector's name is defined in a different image.
2025-04-08Omit the branch when lifting xabortBrandon Miller
When not in RTM, the xabort intrinsic instruction is a NOP. When in RTM, the only way to resolve the branch destination is to resolve the fallback address computed by a seperate xbegin instruction
2025-04-07[SharedCache] Apply call overrides to objc_msgSendSuper / objc_msgSendSuper2Mark Rowe
These are treated the same as `objc_msgSend` with the exception of their first argument being an `objc_super*` rather than `id`.
2025-04-07[SharedCache] Include segment in image section nameMason Reed
This removes some section name collisions where a section name is in two separate image segments. See https://github.com/Vector35/binaryninja-api/pull/6454 for more information. Co-Authored-By: WeiN76LQh <WeiN76LQh@github.com>
2025-04-07[SharedCache] Respect workflow override on shared cache databasesMason Reed
Fixes: https://github.com/Vector35/binaryninja-api/issues/6571
2025-04-07[SharedCache] Add symbolizing of all accesses to non-loaded images in functionsMason Reed
2025-04-07Fix broken .gitignoreMason Reed
2025-04-07[SharedCache] Don't process shared cache when view is not file backedMason Reed
This fixes a case where the remote file is downloaded and the shared cache view is selected, we _only_ work for file backed views, as our shared cache specific file accessors work on those. So this is not a loss in functionality. In the future if we wanted to load shared caches without touching disk (yikes) than we would need to remove this restriction, or provide a way in the API for user to process their own cache entries (after view init).
2025-04-07[SharedCache] Allow the user to select the original shared cache file on diskMason Reed
This gives the user the ability to take a database with no original file path continue processing entries with the user supplied base file. This also will set the original file path for future loads, we might want to make that optional. And the behavior with remote projects for that might be undesired.
2025-04-07add venv to virtualenv setting descriptionJordan Wiens
2025-04-07Also update kernelcache template.Alexander Taylor
Fixes #6586, but for this plugin as well.
2025-04-07Fix broken list in docs.Alexander Taylor
2025-04-07Stop including generated Python file.Alexander Taylor
2025-04-07[SharedCache] Support loading from user plugins directory tooGlenn Smith
Check for the core plugin setting and, if it's disabled, look in the user directory
2025-04-07Don't ifdef-out virtual functions in ViewGlenn Smith
2025-04-07Support string arguments to workflow functions that expect activity lists. ↵Brian Potchik
(skip-ci)
2025-04-07Return None instead of raising in func IL gettersBrandon Miller
Return None instead of raising an ILException in Python Function.llil, mlil, etc to allow these properties to play nice with map and filter
2025-04-07[SharedCache] Dont apply invalid symbols in the stub workflowWeiN76LQh
2025-04-07[SharedCache] Resolve original file path and name from project database fileMason Reed
Fixes https://github.com/Vector35/binaryninja-api/issues/6582 More considerations might need to be made for databases saved without the original file path. Likely solved through some shared cache specific metadata.
2025-04-07fix broken link in get_llils_at docsJordan Wiens
2025-04-06[SharedCache] Add mutex to guard `m_namedSymbols`Mason Reed
It is modified on a worker thread so if a user tries to call `GetSymbolWithName` after view init but before the processing on the worker thread finishes, there would have been issues!
2025-04-06[SharedCache] Prevent some unneeded copies when processingMason Reed
Also swapped out CacheEntry::m_images to a vector as its never actually used as a lookup
2025-04-06[SharedCache] Replace write log with callback registration for reapplying ↵Mason Reed
slide info This improves performance by ~10x with the only real issue being a copy of the cache entry existing for each weak ref. Also fixes - Some old TODO's that are no longer relevant - Some function signatures not being const - FileAccessorCache not evicting enough accessors to fit under an adjusted cache size - Added a warning if we are over the global cache size in view initialization - Logger name not having a `.` in `SlideInfoProcessor::SlideInfoProcessor` - Re-added the accessor dirty check before applying slide info to fix https://github.com/Vector35/binaryninja-api/issues/6570
2025-04-06[SharedCache] Prevent all functions from being queued up for reanalysis when ↵Mason Reed
adding new images and regions Within the user section creation we will assume that because a non-default section was added, we should mark all functions for reanalysis. From initial testing this isn't an extreme slowdown, but with the addition of more images the number of queued up functions becomes much greater, even if those are unmarked immediately and processing of those functions isn't slow it is unneeded and might lead to other non-obvious slowdowns. To be clear, we do not need to queue up functions from already analyzed images to be analyzed again, there is no benefit, our workflow handles cross images calls already, so those places will already be queued up, and if they aren't, that is the issue to solve, not this.
2025-04-06[SharedCache] Add a named symbol mapMason Reed
Fixes https://github.com/Vector35/binaryninja-api/issues/6561 - Also tightens the SharedCache class to move only, to prevent accidental copies. - Also removes some extra copies in FFI when should pass by ref - Also adds `get_symbol_with_name` to python API The current named symbol map is populated in a worker thread spawned in the view init. This is because populating the map can take about 1 second. If we are fine with another 1 second added to the view init time then we can add it serially but I don't think this way is _that_ bad, no analysis consults this, however a user might add a workflow that would be racing this. So we need to add a mutex.
2025-04-06fix get_llils?_at documentationJordan Wiens
2025-04-06fix moved URLs in documentationJordan Wiens
2025-04-05Add current_il_expr and current_il_expr_index magic varsGlenn Smith