* Fixed adding a raw string on python3
* Fix a missing parenthesis
* Ensure a raw string is converted to bytes when creating a new Metadata
|
|
|
|
|
|
|
.instructions to mlil instead of main function -- likewise for llil
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Python3
|
|
|
|
Add text-based and constant-based searching
|
|
|
|
|
|
|
|
`Variable.__eq__` fails to check if the other value is actually a Variable object before comparing member properties. This fixes the exception that gets raised when comparing a Variable against something else.
|
|
|
|
Return assemble error string as part of the ValueError exception
|
|
Instantly bail if we try to compare a SSAVariable to something that isn't an SSA Variable. Prevents the following issue:
```
>>> bv.get_functions_at(here)[0].medium_level_il.ssa_form[96].src[0].src
<ssa <var uint64_t rax_2> version 13>
>>> type(bv.get_functions_at(here)[0].medium_level_il.ssa_form[96].src[0].src)
<class 'binaryninja.mediumlevelil.SSAVariable'>
>>> bv.get_functions_at(here)[0].medium_level_il.ssa_form[96].src[0].src == 'rax_2'
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/Applications/Binary Ninja.app/Contents/MacOS/plugins/../../Resources/python/binaryninja/mediumlevelil.py", line 48, in __eq__
(other.var, other.version)
AttributeError: 'str' object has no attribute 'var'
```
|
|
|
|
Cleaned up documentation for assemble's return type
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Most of the BNLog API methods are just variable length arguments of strings. BNLog also includes a `level` parameter, which causes a `TypeError` when `binaryninja.log.log(level, msg)` is called, because it is expecting all parameters to be strings. This PR fixes it so that `BNLog` is correctly generated.
Note: I haven't actually tested this to verify `generator` still works, because my Makefile is messed up currently.
|
|
|
|
|
|
|
|
In certain situations Architecture implementations can return different
lengths in get_instruction_info and get_instruction_text (e.g.
pseudo-instructions). Since BasicBlock's __iter__ method returns
disassembly lines, we should advance by the length returned by that
callback instead of get_instruction_info, which could be different.
|
|
|
|
are assumed to be preserved (used in heuristics to avoid incomplete data flow cloberring these registers)
|
|
|