| Age | Commit message (Collapse) | Author |
|
Would result in binaryninjacore not being loaded:
```
dyld[19068]: Library not loaded: @rpath/libbinaryninjacore.1.dylib
```
Simply forgot to add build.rs to direct cargo at where to find the lib.
|
|
|
|
Made possible by the new attributes in binja's type system.
|
|
Literally only affects InvalidILViewType
|
|
Fixes Vector35/binaryninja-api#7782. Seems like these were missed in the refactor in de0b872e
|
|
|
|
This avoids constructing two unordered maps and numerous vectors for
each IL level at library load time for each plug-in that uses the C++
API. Additionally, the arrays allow for more efficient look-ups.
|
|
This allows a few widely-used enums to be shrunk from 4 bytes to 1 byte,
improving packing when they're used as struct members.
To remain compatible with C, we follow CoreFoundation's approach and use
a macro when defining the enum:
```
#if defined(__cplusplus) || __has_extension(c_fixed_enum)
#define BN_ENUM(type, name) enum name : type
#else
#define BN_ENUM(type, name) typedef type name; enum
#endif
BN_ENUM(uint8_t, SomeEnum)
{
...
}
```
In C++ and C23 this will expand to an enum with a fixed underlying type.
In older C language versions, this will result in the enum type being a
typedef of the underlying type, with an unnamed enum providing the enum
values.
Minor changes were needed within the Python bindings to update places
that made assumptions about the underlying type of the enums.
|
|
Fixes https://github.com/Vector35/binaryninja-api/issues/7770.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Prevents type confusions considering there are at times, three different id types being referred to in the type archive API
|
|
|
|
`BinaryViewExt::analysis_progress`
|
|
These have been deprecated since last stable, so they will be removed now.
I do believe that there might be some external users of this api so we should alert them.
|
|
|
|
|
|
- `analysis_info` was causing a double free with function refs, also did not need to be wrapped in a Result
|
|
|
|
Still need to add a custom architecture for unit tests like in python
|
|
There was a TODO there to document that it is optional, we should just wrap it in `Option` instead.
|
|
|
|
|
|
|
|
|
|
To keep backwards compatibility for commonly referenced code we re-export them within the architecture module.
Also does some light refactoring of some newly added APIs to keep them more consistent with other parts of the codebase.
|
|
Use `Location` instead, `arch` can be a nullptr
|
|
Forgot to call `BNFreeArchitectureAndAddressList`, also use `Location` instead of `ArchAndAddr`.
|
|
|
|
without an owner
You cannot generate SSA form of an LLIL function without a backing function unfortunately.
|
|
|
|
|
|
|
|
|
|
|
|
EndBulkAddSegments
This defers rebuilding of the section map until after all sections for
an image have been added, rather than having the section map be rebuilt
after adding each section.
|
|
This defers rebuilding of the section map until after all sections for
an image have been added, rather than having the section map be rebuilt
after adding each section.
|
|
This change consists of two parts:
1. Updating the system register enumeration and names based on the
latest data from ARM.
2. Removing register names that conflict with the official names from
ARM.
The conflicting register names came a data set of Apple-specific system
register names. These would ideally not be baked into the AArch64
disassembler at all, but would be added by Binary Ninja's Apple
platform. The exact mechanism for doing that is still TBD.
Fixes https://github.com/Vector35/binaryninja-api/issues/7664.
|
|
Fixes https://github.com/Vector35/binaryninja-api/issues/7666.
Correctly managing the state of bulk symbol modifications via
`BeginBulkModifySymbols` / `EndBulkModifySymbols` is error-prone in the
face of exceptions and early returns. Leaking a bulk symbol modification
can leave the view in a state where no further changes to symbols will
be applied.
All users of the C++ API are encouraged to move from
`BeginBulkModifySymbols` / `EndBulkModifySymbols` to the new
`BulkSymbolModification` class.
|
|
|
|
|
|
|