summaryrefslogtreecommitdiff
path: root/view
AgeCommit message (Collapse)Author
2025-07-03Expose Add/RemoveDataReference and ensure BinaryViews use this API instead ↵Peter LaFosse
of the _user_ variant
2025-07-02Added no export trie data detection.Hongyu Chen
2025-06-29[powerpc] Full merge of PowerPC disassembler PRs, including:Galen Williamson
* Remove dependency on capstone for PowerPC disassembly #6292 * Add support for PowerPC VLE instruction set #6740 * Add support for paired-single instructions #6821 * Various post-merge fixes and tweaks to disassembly and lifting * Removal of dependence on capstone for assembler's scoring mechanism (capstone currently disabled, but not removed from codebase yet)
2025-06-25Fix cxx20 build issue on Linux.Alexander Taylor
Apparently the compiler on macOS is less strict about this change?
2025-06-25Fix cxx20 compiler warnings.Alexander Taylor
2025-06-25Fix cxx20 compiler errors.Alexander Taylor
2025-06-25Update CXX_STANDARD to 20.Alexander Taylor
Also update minimum CMake version.
2025-06-25Remove implicit conversions from Confidence to underlying type, these can ↵Rusty Wagner
cause bugs and also issues with C++20
2025-06-25[view][elf] Fixed duplicate NOTE section loading in address space.Hongyu Chen
NOTE sections were being treated as loadable segments when they should be metadata-only. The NOTE section had the allocatable flag set. The program correctly checked for SHF_ALLOC but didn't exclude NOTE sections explicitly. NOTE sections consumed 0x50 bytes at the base address
2025-06-16Use heuristic confidence for ELF symbol auto-type inference.Brian Potchik
2025-06-06Objective-C Processor: Remove vestigial code tracking whether view was ↵kat
backed by a database
2025-06-04[MachO] Don't add symbols when processing bind fixupsMark Rowe
The target of the bind opcode has its symbol applied when the dynamic symbol table is parsed. This was previously adding a symbol at the fixed-up address with the name of the symbol being bound. This was resulting in dozens of `_OBJC_CLASS_$_NSObject`, `_OBJC_METACLASS_$_NSObject`, and `__objc_empty_cache` symbols being created: one for each `objc_class` that referenced those symbols.
2025-06-04Fix calls to BNFreeString in kernel cache APIAlexander Khosrowshahi
Amends calls to BNFreeString in kernel cache API that were causing `get_macho_header_for_address`, `get_macho_header_for_image`, `get_image_name_for_address`, and `get_name_for_address` to fail. Fixes https://github.com/Vector35/binaryninja-api/issues/6855
2025-06-03[MachoView] Add support of __init_offsetsObriv Mostov
2025-05-30Don't query the template simplifier setting while demangling symbolsPeter LaFosse
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-28Support for Linux x86-64 x32 ABIBrandon Miller
2025-05-21[SharedCache] Fix .dylddata sections failing to propagate constantsMason Reed
This occurred because prior to the change made in build `7484` we short-circuited when the pointer pointed to a read only segment, now that we consult the section the sections semantics were incorrect and failed, this fixes the dyld data sections to have correct semantics.
2025-05-13[CMake] Report compatibility with 3.15 to silence deprecation warningsGlenn Smith
2025-05-13Rework Export Trie parser to avoid recursion, improve error checkingkat
2025-05-06[SharedCache] Add activities to core.function.metaAnalysis rather than a new ↵Mark Rowe
named workflow Activities are registered with a `viewType` predicate to ensure they only run in shared cache views. Adding activities to `core.function.metaAnalysis` lets activities registered by plug-ins run in the shared cache without the plug-ins having to be aware of the shared cache. Work towards #6779.
2025-05-06[SharedCache]"Fix" possible deadlock when loading images from the UIMason Reed
This disables the filter for already added images, there is another check when we go to apply so that it fails early but the real issue is the fact this happened at all. Within the Objective-C processor there is a call to `BeginUndoActions` which calls `ExecuteOnMainThreadAndWait`, while the objective-c processor is holding the lock to the controller. To fix this we really need to make the undo action system not call `ExecuteOnMainThreadAndWait` which is deadlock city, to do that really the only solution is to make the `UndoBuffer` thread-safe and remove the calls to execute undo related stuff on the main thread, this will make it so that when a call to `BeginUndoActions` there is no requirement to wait on pending undo actions as they are all submitted immediately.
2025-05-03[SharedCache] Avoid reading header fields outside of the bounds of the headerDaniel Roethlisberger
Use mappingOffset as an upper bound for the header size, and avoid reading any header fields from beyond that offset. Co-authored-by: Mason Reed <mason@vector35.com>
2025-05-02[SharedCache] Have VirtualMemoryReader get the address size from the ↵Mark Rowe
underlying VirtualMemory
2025-05-02[SharedCache] Fix parsing of Objective-C metadataMark Rowe
8267ab475cb2ac82fd3724c009f21e8e30143f6b introduced a logic error in VirtualMemoryReader::ReadPointer that caused VirtualMemoryReader to attempt to read pointers from the wrong address, breaking parsing of Objective-C metadata.
2025-04-28[SharedCache] Support loading iOS shared caches older than 11Mason Reed
Still need to fix branch island images not being picked up
2025-04-28[SharedCache] Improve support for older shared cache versionsMason Reed
Fixed branch island regions being skipped
2025-04-28Misc shared cache performance improvementsMason Reed
2025-04-28[MachO] Handle chained imports with addendsMark Rowe
They show up in some macOS system executables.
2025-04-26[SharedCache] Fix possible crash when closing view with images still being ↵Mason Reed
added in the background through the UI We set some model data after the fact that didn't exist because the qt object was destructed on tab close.
2025-04-26[SharedCache] Update the ref count warning to only show when above 2Mason Reed
We will have 2 live references in the DeleteController function, this warning does not need to be shown.
2025-04-21[SharedCache] Always load image dependenciesWeiN76LQh
Simple change that means an image's dependencies can be loaded via the DSC triage view whether the primary image has already been loaded or not. Sometimes I've already loaded an image and then later on decide I want to load its dependencies. Currently there is no easy way to do that in the UI.
2025-04-21Actually fix crash when opening aarch64 TE binary with free versionJosh Ferrell
2025-04-17Fix crash when opening aarch64 TE binary with free versionJosh Ferrell
2025-04-16Clean up navigable views and prioritiesGlenn Smith
2025-04-16Fix various views not being marked executableGlenn Smith
2025-04-16Accidentally made wrong column interactive...Alexander Taylor
2025-04-16Better column sizing for DSC and KC triage views.Alexander Taylor
2025-04-16Add loaded column for kernel cache view.Alexander Taylor
Required adding an API to determine if an image is loaded.
2025-04-16Glenn wanted this.Alexander Taylor
2025-04-14[SharedCache] Fix crash with cache entries with alignment bytes at the end ↵Mason Reed
of the header We did not truncate the buffer length when reading the header using the mappingOffset size, resulting in a buffer overflow.
2025-04-14[SharedCache] Evict file accessors from the global file accessor cache on ↵Mason Reed
file metadata destruction Previously we would just let them continue to exist after view destruction, this is fine assuming we expect the user to be re-opening the same cache over and over, but if a user wants to load a bunch of different caches they might want to evict the old file accessors so that COW pages are known to be evicted, along with other paged in memory.
2025-04-14Avoid MH_FILESET in Mach-O view during magic check.Alexander Taylor
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-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