summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2025-04-14Set vendor for .eh_frame parsing for aarch64 binariesJosh Ferrell
2025-04-14[SharedCache] Fix overzealous alert about missing shared cache entriesMason Reed
Following the conversation in https://github.com/Vector35/binaryninja-api/issues/6631 we are going to make the edited alerts warnings and then also fix the warning showing on certain shared caches even when all entries are present.
2025-04-14Fixes for multiple issues in DSC/KC Triage views.Alexander Taylor
1. Crash on kernel cache image load 2. Duplicate Load Image buttons in kernel cache view 3. Improper selection behavior in both views 4. Address column should no longer resize to be smaller than contents 5. Symbol tables should now be properly sortable
2025-04-14Prevent nullptr deref if we don't find image.Alexander Taylor
2025-04-14remove docs fro newInstance setting that was removed and small tweaks to the ↵Jordan Wiens
docs for the feature
2025-04-14[SharedCache] Allow project databases to be stored in a separate folderMason Reed
However the primary file will need to be selected each time you open, for that to be resolved we need to use project file UUID's or the cache entry UUID's themselves to traverse all project files
2025-04-14[SharedCache] Improve the gathering of cache entries in view initMason Reed
This commit addresses some of the issues regarding the retrieval of cache entries during view init, we now will try and store information in the database about the given shared cache entries so that we can better alert the user to possible issues during the loading of saved shared cache databases. We also simplified the logic so that the flow for retrieving the primary file cache is easier and users should be prompted when necessary to select the primary cache file if we cannot. More errors will also be shown to provide the users with more information about the shared cache and what issues they might have. For example we will now try and warn the users when they are opening a shared cache with less entries than what the shared cache reports having. We will also warn the users when opening a database if a previous secondary cache file is no longer available. In the future we can also utilize the shared cache UUID's for individual files to do a more aggressive search across directories in a project. This will make the file name lookup stuff potentially unnecessary, at least when opening a database with all file UUID's stored.
2025-04-14[SharedCache] Skip processing .atlas filesMason Reed
The atlas files include section name info on images, its not helpful for us and skipping it altogether will remove an unneeded error related to parsing this other format
2025-04-14[SharedCache] Misc cleanupMason Reed
- Make `SharedCache::m_entries` a simple std::vector we never lookup based off the entry ID - Remove some old comments - Rename some old variables so that they are accurate - Fix compiler warnings - Remove some unneeded copying
2025-04-14[SharedCache] Bubble up errors in `CacheEntry::FromFile` to the userMason Reed
Prior to this we would not have meaningful errors shown to the user when we fail to construct a CacheEntry from a file. Apart of trying to make the opening of shared caches clearer.
2025-04-14[SharedCache] Fix project folder comparison crashMason Reed
Fixes https://github.com/Vector35/binaryninja-api/issues/6629
2025-04-14[SharedCache] Expose cache entry name in the APIMason Reed
Allows us to display the user friendly name of the cache entry in the triage view
2025-04-14[SharedCache] Apply .symbols file information when applying an imageMason Reed
This improves symbol recovery drastically on newer shared caches Related PR: https://github.com/Vector35/binaryninja-api/pull/6210
2025-04-14Simplifed documentation for "Launching Binary Ninja from the command line", ↵Galen Williamson
and moved it to user guide.
2025-04-11Fix pseudo C and rust type cast on HLIL_DEREFBrandon Miller
Should be using the instruction size of the HLIL_DEREF instruction, not the size of the HLIL_DEREF's source expression
2025-04-11Add instruction attribute for intermediate computations that are potentially ↵Rusty Wagner
unused in MLIL
2025-04-10[SharedCache] Fix building on some toolchainsMason Reed
Implicit std::filesystem::path conversion oops
2025-04-10Added documentation for Launching Binary Ninja from the command line (CLI), ↵Galen Williamson
re: new and existing instances
2025-04-10Fix function type construction leaking in Rust APIMason Reed
2025-04-10Add debug info rust testMason Reed
2025-04-10[SharedCache] Make the shared cache file lookup more straightforwardMason Reed
We already had separated this part out into the `CacheProcessor` but its more like a builder than anything, so this refactors that out into a `SharedCacheBuilder`. - Separate out the `CacheProcessor` and simplify its implementation - Move more implementation specific stuff to the shared cache view - Prepare for more validation of the shared cache to detect irregular or incomplete shared cache information - Deduplicate a lot of file vs. project file lookup stuff - Stop copying all images when getting the number of images to log - Allow user to select another directory to scan for shared cache files, might make this a warning instead to prevent users from relying on this behavior We will likely follow this commit up soon with better open behavior, maybe open with options can specify a list of cache entry files? Shouldn't be too much effort aside from making the UI modal for that.
2025-04-10cleanup troubleshooting docsJordan Wiens
2025-04-09[aarch64] add lifting for B.NV instruction, fix branch generation for B.AL ↵Galen Williamson
and B.NV, fix AlwaysBranch patching to generate a valid B instruction
2025-04-09[aarch64] add lifting for B.AL instructionGalen Williamson
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>