summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2025-04-02[SharedCache] Fix the triage symbol table data racesMason Reed
Any update to the model should only happen on the UI thread now. This also fixes the other issue here: https://github.com/Vector35/binaryninja-api/issues/6300
2025-04-02Remove ObjC todos which shouldnt be doneMason Reed
See: https://github.com/Vector35/binaryninja-api/pull/6540/files#r2020882071
2025-04-02[SharedCache] Fix some bugsMason Reed
2025-04-02[SharedCache] Fix some issues with project loadingMason Reed
2025-04-02[SharedCache] Refactor Shared CacheMason Reed
In absence of a better name, this commit refactors the shared cache code.
2025-04-02[SharedCache] Use DefineAutoUserSymbol instead of DefineAutoSymbolMason Reed
This makes it so that we persist the symbols within the regular symbol list in storage
2025-04-02[SharedCache] Make error about invalid metadata a warning, we recover sorta ↵Mason Reed
gracefully now
2025-04-02[SharedCache] Don't show DSCTriage when not in shared cache viewMason Reed
2025-04-02[SharedCache] Optimize parsing of slide infoMark Rowe
Slide info is parsed and applied on the main thread, below the `SharedCache` constructor, when a shared cache is opened. Time spent applying the slide is time that the main thread is blocked. These changes eliminate some unnecessary overhead so what work remains is dominated by kernel work (paging in data, copying pages when the first modification is made). The changes are: 1. Read slide pointers via `ReadULong` rather than the variable-length `Read` method. The compiler isn't able to eliminate the call to `memcpy` in the variable-length `Read` function, and the function call overhead is noticeable given the small size of the read and number of times it is called. 2. Remove the file member from `MappingInfo`. Slide info is applied for a single file at a time so there's no reason to track the file it belongs to. This removes unnecesssary reference counting on the `std::shared_ptr` that holds the `MMappedFileAccessor`.
2025-04-02[SharedCache] Stop crashing if we don't have a valid dyld in PerformInitialLoadMason Reed
Still need to decide on how we want handle this, because we need multiple files we probably just want to prompt the user for a directory?
2025-04-02[SharedCache] Remove warning which is unlikely to be usefulMason Reed
This warning will happen anytime you load an image with already processed regions.
2025-04-02[ObjC] Create a shared ObjC processor for Macho and DSC viewsWeiN76LQh
Both the Macho and DSC views need to process Objective-C but have separate processor classes. It would appear that the DSC version was largely a copy and paste of the Macho view one, with some modifications. The majority of code overlaps between the 2 so it doesn't make sense to maintain 2 and copy and paste improvements/fixes between them. This commit fixes that by creating a base Objective-C processor that contains the shared code. View specific code is implemented in the respective subclasses for the views. Although there is very little view specific code for each.
2025-04-02[SharedCache] Don't serialize state twiceGlenn Smith
2025-04-02[SharedCache] Make it faster to look up which image contains an addressMark Rowe
`MemoryRegion` now tracks the start address of the image to which it belongs. `SharedCache::HeaderForAddress` uses the existing address range map to quickly find the `MemoryRegion` for a given address, and from there can look up the image via its start address. Some extra logic is added to `CacheInfo::Load` to populate the image start address on `MemoryRegion` when loading from metadata that predates this change. The result is that `HeaderForAddress` is no longer the most expensive part of `FindSymbolAtAddrAndApplyToAddr`.
2025-04-02[SharedCache] Demangle relevant symbolsMason Reed
Use the LLVM demangler to demangle relevant symbols
2025-04-02[SharedCache] Remove some dead code and misc lintsMason Reed
2025-04-02[SharedCache] Cleanup SharedCacheWorkflow::FixupStubsMason Reed
Moved some code to a helper function and removed dead code and other oddities
2025-04-02[SharedCache] Don't crash if we have a different metadata versionMason Reed
Also we now initialize m_cacheInfo when calling `DeserializeFromRawView` the responsibility is on the caller to handle
2025-04-02[SharedCache] Warn when loading BNDB with different shared cache metadata ↵Mason Reed
version This does not actually give the user control to exit early, that looks to need core changes.
2025-04-01Fix line formatter handling of calls without arguments and long symbol namesRusty Wagner
2025-04-01Rust: Better support for floating licensesGlenn Smith
2025-04-01DWARF Parser: Remove error log and ignore lexical ranges that start and end at 0ElykDeer
2025-04-01[aarch64] use static var to avoid recreation of sysregs vectorGalen Williamson
2025-03-31Emphasize BackgroundThread owner lifetimes in docsGlenn Smith
This contract is hard to use safely, and the docs did not do a good enough job explaining how to do it, partially due to all of our internal code not doing a good enough job using it. Big introspection commit Fixing All The Things to come soon(ish).
2025-03-31[aarch64] Updating Aarch64 system registers to 2024-12 spec, fix MSR/MRS ↵Galen Williamson
lifting to use ReadMSR/WriteMSR intrinsics that take enums, removing the sysregs from the register list of the architecture * sysregs are no longer registers, add enum for TLBI and AT operands * add erroneously missing cases for unsupported encodings, add enum for DC operands
2025-03-31Python: Make enterprise.connect() check for enterprise.initialize()Glenn Smith
2025-03-31small phrasing updateJordan Wiens
2025-03-31TriageView setBinaryDataNavigable based on m_byteViewPeter LaFosse
2025-03-31Improve navigation fallback behavior when a navigation request is received ↵Brian Potchik
and the current view is not binary data navigable.
2025-03-30add example code for PlatformJordan Wiens
2025-03-30update version switcher example to use core_version_info, resolves #6204Jordan Wiens
2025-03-30Add Python Metadata API improvements for handling Metadata as values, ↵Brian Potchik
dictionary item assignment, and array appending. (skip-ci)
2025-03-29Remove ineffective call to UpdateAnalysis in VFT plugin.Brian Potchik
2025-03-29Add interim workflow C++ apis for logging.Brian Potchik
2025-03-282025 for other formats...Jordan Wiens
2025-03-28missed the older dates!Jordan Wiens
2025-03-28belated copyright year updateJordan Wiens
2025-03-28Fix initial navigation to DSCTriage viewPeter LaFosse
2025-03-27Python: Fix a couple typoes in the IL buildersGlenn Smith
2025-03-27RTTI: Add background task back and make it cancellableMason Reed
If the background task gets stuck, this is the commit to ponder at
2025-03-27RTTI: Get rid of useless log messageMason Reed
Not even going to check the git blame i know this was committed at 3 in the morning
2025-03-26Update debugger docsXusheng
2024-03-21Add Motorola M-CORE Linux platform support.Alexander Taylor
2025-03-24Fix extern ptr corercion for R_MIPS_HIGHEST/HIGHERBrandon Miller
2025-03-23Fix misc crashes with Itanium RTTI and improve 32bit supportMason Reed
32bit support still needs some fixes for the VMI offsets and other things, but its better than it was before. Likely need to do a little refactoring after this release to make the code less horrendous, but its fine for now.
2025-03-23Make sure to trigger analysis updates after VFT analysisMason Reed
Unlikely to be the last for initial analysis, still a good idea to check.
2025-03-23add copy/paste in history windowJordan Wiens
2025-03-21Fix memory leak in base address detectionBrandon Miller
2025-03-21Don't use fully qualified import.Brian Potchik
2025-03-21fix x86 settings text and use proper raw string markerJordan Wiens