| Age | Commit message (Collapse) | Author |
|
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
|
|
|
|
Fixes https://github.com/Vector35/binaryninja-api/issues/6582
More considerations might need to be made for databases saved without the original file path. Likely solved through some shared cache specific metadata.
|
|
|
|
It is modified on a worker thread so if a user tries to call `GetSymbolWithName` after view init but before the processing on the worker thread finishes, there would have been issues!
|
|
Also swapped out CacheEntry::m_images to a vector as its never actually used as a lookup
|
|
slide info
This improves performance by ~10x with the only real issue being a copy of the cache entry existing for each weak ref.
Also fixes
- Some old TODO's that are no longer relevant
- Some function signatures not being const
- FileAccessorCache not evicting enough accessors to fit under an adjusted cache size
- Added a warning if we are over the global cache size in view initialization
- Logger name not having a `.` in `SlideInfoProcessor::SlideInfoProcessor`
- Re-added the accessor dirty check before applying slide info to fix https://github.com/Vector35/binaryninja-api/issues/6570
|
|
adding new images and regions
Within the user section creation we will assume that because a non-default section was added, we should mark all functions for reanalysis. From initial testing
this isn't an extreme slowdown, but with the addition of more images the number of queued up functions becomes much greater, even if those are unmarked immediately
and processing of those functions isn't slow it is unneeded and might lead to other non-obvious slowdowns.
To be clear, we do not need to queue up functions from already analyzed images to be analyzed again, there is no benefit, our workflow handles cross images calls already,
so those places will already be queued up, and if they aren't, that is the issue to solve, not this.
|
|
Fixes https://github.com/Vector35/binaryninja-api/issues/6561
- Also tightens the SharedCache class to move only, to prevent accidental copies.
- Also removes some extra copies in FFI when should pass by ref
- Also adds `get_symbol_with_name` to python API
The current named symbol map is populated in a worker thread spawned in the view init. This is because populating the map can take about 1 second.
If we are fine with another 1 second added to the view init time then we can add it serially but I don't think this way is _that_ bad, no analysis consults
this, however a user might add a workflow that would be racing this. So we need to add a mutex.
|
|
|
|
|
|
|