Releases: droe/binja-blocks
Binja Apple Blocks Plugin 0.4.1
QoL release:
Full Changelog: 0.4.0...0.4.1
Binja Apple Blocks Plugin 0.4.0
What's Changed
Improvements to annotation:
- Full support for generic helper info on descriptors (#27, #20, #23)
- Annotate generic helper info just before descriptors, if present according to in-descriptor flags
- Use whichever of layout or generic helper info has the better quality layout info
- Improved heuristic of when to include
layout
field in descriptor (#7, #23) - New plugin command: Annotate stack byref here (#10)
- Better flags decoding
- Avoid clobbering invoke function parameter types of 100% confidence with types derived from the Objective-C signature string
- Propagate type of captured self to block literal type
Other notable changes:
- Disabled
is_valid
to work around Vector35/binaryninja-api#6254 - Many robustness and logging improvements
Full Changelog: 0.3.8...0.4.0
Binja Apple Blocks Plugin 0.3.8
Minor improvements to annotation:
- Fix parsing of ObjC types with bit fields (
b
) - Annotate flags as enums, not uints, to allow Binja to decode them
- Detect and annotate in-descriptor flags
- Reference Objective-C types by name, not by value
- Multiple minor robustness improvements to stack block and byref detection
Other improvements:
- Use proper logger with log category
Apple Blocks
- No longer generate any comments
Full Changelog: 0.3.7...0.3.8
Binja Apple Blocks Plugin 0.3.7
What's Changed
- Annotate byref
keep
anddestroy
functions with appropriate function types when annotating byrefs (#11) - Make plugin work in dyld shared cache mode (#6, #17; for best results, use latest development build)
- Fixed multiple issues where multiple HLIL instructions at the same address as an instruction of interest would confuse the parsing of block literals and byrefs (#16, #14)
- Improve error reporting to be more precise and less noisy for problems resulting from e.g. complex HLIL (#15)
- Fix issue where imported variables in block literals would have a wrong offset suffix (regression introduced in 0.3.6)
- Fix issue where blocks without layout information would cause an exception (regression introduced in 0.3.6)
Full Changelog: 0.3.6...0.3.7
Binja Apple Blocks Plugin 0.3.6
What's Changed
- Set block literal struct defintions to their actual size by @WeiN76LQh in #2 addressing #1
- Only add layout field to block descriptor for extended layout in #4 addressing #3
- Make all plugin commands undoable as a single undo transaction
New Contributors
- @WeiN76LQh made their first contribution in #2
Full Changelog: 0.3.5...0.3.6
Binja Apple Blocks Plugin 0.3.5
Improvements to function signature annotation:
- Propagate the invoke function signature to the invoke pointer on the corresponding block literal in order to clean up block invocations.
- Set appropriate names for the invoke function's first parameter as well as all all parameters of the copy and dispose functions.
- Avoid clobbering auto-detected parameters when annotating invoke for a block that has no signature info.
QoL improvement:
- Add plugin command to remove comment added by plugin, in order to clean up after manually adding missing imported variables to the block literal struct.
Full Changelog: 0.3.4...0.3.5
Binja Apple Blocks Plugin 0.3.4
Documentation-only release to add screenshots to README.md.
Full Changelog: 0.3.3...0.3.4
Binja Apple Blocks Plugin 0.3.3
Bug fix release improving robustness of stack block and byref annotation.
Full Changelog: 0.3.2...0.3.3
Binja Apple Blocks Plugin 0.3.2
Maintenance release that improves parsing of block signature ObjC type strings, adding support for more undocumented type codes and more gracefully handling parse failures.
Full Changelog: 0.3.1...0.3.2
Binja Apple Blocks Plugin 0.3.1
Bug fix release improving compatibility with more obscure ObjC signature strings, addressing a number of exceptions and improving failure handling.
Full Changelog: 0.3.0...0.3.1