| Age | Commit message (Collapse) | Author |
|
This makes it easier to see the possible message send targets when
looking at a call to `objc_msgSend`.
|
|
|
|
|
|
It looks like the build instructions hadn't been updated after the arch
plugins were moved back to binaryninja-api.
|
|
|
|
`MediumLevelILFunction::instruction_from_index`
Fixes https://github.com/Vector35/binaryninja-api/issues/6876
|
|
Makes it simpler to get the register from a variable (if it is a register variable)
|
|
lists of values
This requires us to allocate on the rust side of the API, this is quite easy to mess up but the usage of it is limited.
|
|
This was done to fix unintended behavior using an instruction or expression index in place of the other.
Fixes https://github.com/Vector35/binaryninja-api/issues/6897
|
|
|
|
|
|
|
|
|
|
LowLevelILFunction::basic_block_containing_index
|
|
This is possible now that FunctionMutability and FunctionForm require
Copy, and fixes an existing clippy warning about the non-canonical
implementation of `clone` on a `Copy` type.
|
|
|
|
|
|
|
|
Detect and remove common prefixes used on selectors so that their
argument names are more natural. For instance, a selector of
`initWithURL:withStagedURL`: now ends up with arguments named `URL` and
`stagedURL`, rather than `initWithURL` and `withStagedURL`.
|
|
Handle the case where the `class` field of the category is a direct
reference to an external symbol via a bind fixup. In that case, the
pointer's value when read from the view is 0. To determine the class
name it is necessary to look up the relocation for the pointer's address
and parse the class name from the symbol's name.
|
|
- 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.
|
|
|
|
|
|
implementation
These are detected by their function names having the characteristic
`-[ClassName methodName:]` format. Calls to functions with this naming
pattern that accept a selector as a second argument are assumed to be
`objc_msgSend` calls that the Objective-C workflow rewrote.
These calls are formatted identically to other `objc_msgSend` calls with
the exception that the selector tokens reference the address of the call
target rather than the selector string, so double-clicking on them takes
you to the fixed destination of the rewritten call.
|
|
This is implemented in the Pseudo C plug-in as it shares 99% of the
logic. The Objective-C support is implemented in a subclass of
`PseudoCFunction`. The handling of instruction types that the
Objective-C representation needs to customize is extracted into virtual
functions that the Objective-C subclass overrides.
This currently supports:
* Rewriting `objc_msgSend` / `objc_msgSendSuper2` with constant
selectors to `[receiver message]` notation.
* Rewriting calls to `objc_alloc` / `objc_alloc_init` / `objc_new` to
the equivalent message send notation.
* Rewriting `objc_retain` / `objc_release` and friends to the
equivalent message send notation.
* Displaying Objective-C class references as their class names rather
than `_OBJC_CLASS_$_` symbol names.
* Displaying Objective-C string literals as `@"..."`.
This works best when used in conjunction with
https://github.com/bdash/bn-objc-extras as the reference counting runtime
calls add so much clutter.
|
|
arm64: prefer fp, lr
arm64: update tests to use new reg names, improve windows build
|
|
This reverts commit cb7c2d3bb716a2e96cf7f127bbf71992a4861907.
|
|
They were previously relying on the Objective-C workflow to render the
`rptr_t` typedef. Relative pointer types are now a first class citizen
and are rendered correctly without any additional work.
|
|
|
|
|
|
|
|
MSVC shows several warnings, but this one is shown as an error, preventing compilation.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
polar bears.
|
|
|
|
files list.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
thrown exception
Probably should have done this sooner, just lets the user continue analysis, rtti exceptions are continuable from the view of analysis.
|