| Age | Commit message (Collapse) | Author |
|
and moved it to user guide.
|
|
Should be using the instruction size of the HLIL_DEREF instruction,
not the size of the HLIL_DEREF's source expression
|
|
unused in MLIL
|
|
Implicit std::filesystem::path conversion oops
|
|
re: new and existing instances
|
|
|
|
|
|
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.
|
|
|
|
and B.NV, fix AlwaysBranch patching to generate a valid B instruction
|
|
|
|
Addressing Mode (including when the register r0 is elided)
|
|
One day, these will share more code, but today is not quite that day.
|
|
This avoids the 3 errors on view initialization for all supported kernel
caches that aren't "real".
|
|
This reverts commit 9169a13c818fc7f3b09246360c31e200b01bda23.
|
|
|
|
|
|
|
|
|
|
|
|
And also removed unneeded VMReader construction in ApplyRegion
|
|
|
|
|
|
|
|
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.
|
|
|
|
Also adds more information to the progress text when processing vfts for both msvc and itanium
|
|
Some missing checks in case there is a billion segments (see .obj files)
|
|
ST/LDSET, and their variants
Also fixes all outstanding issues in arm64test.py, including intrinsics, dc, at, and tlbi
|
|
|
|
IDK why this was not done prior, leaking the returned core activity and workflow object.
|
|
Fixes the case of stub functions being applied with mangled names.
|
|
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
|
|
`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.
|
|
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
|
|
These are treated the same as `objc_msgSend` with the exception of their
first argument being an `objc_super*` rather than `id`.
|
|
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>
|
|
Fixes: https://github.com/Vector35/binaryninja-api/issues/6571
|
|
|
|
|
|
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).
|
|
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.
|
|
|
|
Fixes #6586, but for this plugin as well.
|
|
|
|
|
|
Check for the core plugin setting and, if it's disabled, look in the user directory
|
|
|
|
(skip-ci)
|
|
Return None instead of raising an ILException in Python Function.llil,
mlil, etc to allow these properties to play nice with map and filter
|