summaryrefslogtreecommitdiff
path: root/view/macho
AgeCommit message (Collapse)Author
2025-07-16Miscellaneous leak fixes in MachoView and ObjCProcessorMark Rowe
2025-07-16Mach-O/KernelCache warning cleanupkat
2025-07-14Revert "Update Objective-C Workflow to use the meta workflow."Brian Potchik
This reverts commit 5bafe5c7bdb0b56037a0b5c573236f9c6367353a.
2025-07-14Update Objective-C Workflow to use the meta workflow.Brian Potchik
2025-07-14[Mach-O] Handling for special library ordinals used in binding informationkat
2025-07-09[MachO] Treat a binary as containing Objective-C metadata if it has __objc_stubsMark Rowe
`__objc_stubs` is not technically Objective-C metadata, but binaries containing Objective-C stubs need the same processing. `MachoView` was previously only enabling the Objective-C workflow if it thinks there is type metadata. The same criteria was used to determine whether to process Objective-C metadata via `MachoObjCProcessor`. This meant binaries with `__objc_stubs` but no Objective-C type metadata were not running the Objective-C workflow, preventing stub functions from being inlined during analysis.
2025-07-08[MachO] Avoid leaking MachoObjCProcessorMark Rowe
This would leak if parsing of CFStrings was enabled while parsing of Objective-C metadata was disabled. It would also leak if exceptions were thrown or early returns were taken in the ~500 lines between where the object was allocated and it was deleted.
2025-07-08Parse sections containing Objective-C constantsMark Rowe
This adds support for the `__objc_arrayobj`, `_objc_dictobj`, `__objc_intobj`, `__objc_floatobj`, `__objc_doubleobj` and `__objc_dateobj` sections that contain Objective-C constants. These are emitted by Apple's versions of Clang for `const` literals, amongst other things.
2025-07-07KernelCache rewritekat
2025-07-02Added no export trie data detection.Hongyu Chen
2025-06-25Fix cxx20 compiler warnings.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-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-03[MachoView] Add support of __init_offsetsObriv Mostov
2025-05-30Don't query the template simplifier setting while demangling symbolsPeter LaFosse
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-04-28[MachO] Handle chained imports with addendsMark Rowe
They show up in some macOS system executables.
2025-04-14Avoid MH_FILESET in Mach-O view during magic check.Alexander Taylor
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-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-03Implement Kernel64 path for Chained Fixups in Mach-O Viewkat
2025-04-03Fix user platform override between armv7 and thumbBrandon Miller
Only override the default platform based on the entry point architecture in cases where the user didn't explicitly set loader.platform
2025-04-02[SharedCache] Refactor Shared CacheMason Reed
In absence of a better name, this commit refactors the shared cache code.
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-03-28belated copyright year updateJordan Wiens
2025-03-19Disable MH_FILESET parsing in Mach-O viewkat
2025-03-19Add Kernel64 pointer format generickat
2025-03-18MachO/ObjC: Avoid generating names containing non-printable charsDaniel Roethlisberger
Avoid generating ObjC symbol names containing non-printable characters for both 8 and 16 bit character encodings.
2025-02-17[SharedCache] Define BackingCacheTypeWeiN76LQh
Split out from https://github.com/WeiN76LQh/binaryninja-api/tree/process-local-symbols
2025-01-20Allow overriding common loader settings when automatic load file parsing fails.Brian Potchik
2025-01-15Remove unused calls to defineTypedef which were causing hangsPeter LaFosse
2024-11-13Bulk add segments in the binary view to improve performanceXusheng
2024-10-17Demangler plugin APIGlenn Smith
Closes #467
2024-09-26Clean up unused variables in Mach-O/Obj-C codekat
2024-09-19Add additional testing and handling for object settings.Brian Potchik
2024-09-13Fix many warningsJosh Ferrell
2024-09-13Ultimate.Alexander Taylor
2024-08-20Initial support for per-function settings.Brian Potchik
2024-08-16Enable workflows by default.Brian Potchik
2024-07-18MemoryMap update with new segment model.Brian Potchik
2024-07-16[Mach-O] Fix an error on Free buildskat
2024-07-12[Objective-C] Fix an issue where freshly opened databases would prompt to ↵kat
save changes
2024-07-11Fix a database upgrade issue regarding mac-aarch64 dbs that are now loaded ↵kat
as ios-aarch64 (skip-ci)
2024-07-08[Mach-O] Fix issue with entry point function platforms on armv7/thumb2kat
2024-06-27Add iOS Platforms. Add Mach-O Typelib supportkat