binaryninja: 6.0 update
This commit is contained in:
@@ -151,7 +151,8 @@ Ref<Type> TypeBuilder::get_or_create(const std::string& name) {
|
||||
#if BN_BITFIELD_SUPPORT
|
||||
builder.SetPacked(true)
|
||||
.AddMemberAtBitOffset(u32(), "Type", /*bitOffset=*/0, /*bitWidth=*/2)
|
||||
.AddMemberAtBitOffset(u32(), "RVA", /*bitOffset=*/2, /*bitWidth=*/30);
|
||||
.AddMemberAtBitOffset(u32(), "RVA", /*bitOffset=*/2, /*bitWidth=*/30)
|
||||
.AddMember(u32(), "Length");
|
||||
#else
|
||||
builder.AddMember(u32(), "RVAType").AddMember(u32(), "Length");
|
||||
#endif
|
||||
@@ -219,6 +220,8 @@ Ref<Type> TypeBuilder::get_or_create(const std::string& name) {
|
||||
.AddMemberAtBitOffset(u32(), "ExtendedEpilogCount", /*bitOffset=*/0,
|
||||
/*bitWidth=*/16)
|
||||
.AddMemberAtBitOffset(u32(), "ExtendedCodeWords", /*bitOffset=*/16,
|
||||
/*bitWidth=*/8)
|
||||
.AddMemberAtBitOffset(u32(), "Reserved", /*bitOffset=*/24,
|
||||
/*bitWidth=*/8);
|
||||
#else
|
||||
builder.AddMember(u32(), "ExtendedHeaderData");
|
||||
|
||||
@@ -258,9 +258,9 @@ Ref<Type> LoadConfiguration::process(const LIEF::PE::CHPEMetadataARM64& arm64) {
|
||||
auto S = type_builder_.get_as<Structure>(ty);
|
||||
assert(S != nullptr);
|
||||
|
||||
uint64_t chpe_metadata_pointer =
|
||||
translate_addr(*load_config_->chpe_metadata_pointer());
|
||||
define_struct_at(chpe_metadata_pointer, ty, "__image_arm64ec_metadata");
|
||||
if (std::optional<uint64_t> ptr = load_config_->chpe_metadata_pointer()) {
|
||||
define_struct_at(translate_addr(*ptr), ty, "__image_arm64ec_metadata");
|
||||
}
|
||||
|
||||
if (arm64.code_map() > 0) {
|
||||
uint64_t code_map_addr = translate_addr(get_va(arm64.code_map()));
|
||||
|
||||
@@ -32,7 +32,7 @@ int main(int argc, const char** argv) {
|
||||
|
||||
analyzer->run();
|
||||
|
||||
fs::path file_path = bv->GetFile()->GetDatabase()->GetFile()->GetFilename();
|
||||
fs::path file_path = bv->GetFile()->GetFilename();
|
||||
std::string filename = file_path.filename().string();
|
||||
fs::path new_bndb = file_path.parent_path() / ("updated_" + filename);
|
||||
|
||||
|
||||
@@ -6,26 +6,18 @@
|
||||
#include "binaryninja/binaryninjaapi.h"
|
||||
|
||||
|
||||
// Bitfield support has been added in BinaryNinja 5.2 (Io)
|
||||
#if BN_VERSION_MAJOR >= 5 && BN_VERSION_MINOR >= 2
|
||||
#define BN_BITFIELD_SUPPORT 1
|
||||
#else
|
||||
#define BN_BITFIELD_SUPPORT 0
|
||||
#endif
|
||||
#define BN_VERSION_AT_LEAST(major, minor) \
|
||||
(BN_VERSION_MAJOR > (major) || \
|
||||
(BN_VERSION_MAJOR == (major) && BN_VERSION_MINOR >= (minor)))
|
||||
|
||||
#if BN_VERSION_MAJOR >= 5 && BN_VERSION_MINOR >= 4
|
||||
#define BN_FRAGMENT_TYPE_CLASS_SUPPORT 1
|
||||
#else
|
||||
#define BN_FRAGMENT_TYPE_CLASS_SUPPORT 0
|
||||
#endif
|
||||
// Bitfield support has been added in BinaryNinja 5.2 (Io)
|
||||
#define BN_BITFIELD_SUPPORT BN_VERSION_AT_LEAST(5, 2)
|
||||
|
||||
#define BN_FRAGMENT_TYPE_CLASS_SUPPORT BN_VERSION_AT_LEAST(5, 4)
|
||||
|
||||
// FunctionParameter switched from a flat `Variable location` to a `ValueLocation
|
||||
// location` in BinaryNinja 5.4
|
||||
#if BN_VERSION_MAJOR >= 5 && BN_VERSION_MINOR >= 4
|
||||
#define BN_VALUE_LOCATION_SUPPORT 1
|
||||
#else
|
||||
#define BN_VALUE_LOCATION_SUPPORT 0
|
||||
#endif
|
||||
#define BN_VALUE_LOCATION_SUPPORT BN_VERSION_AT_LEAST(5, 4)
|
||||
|
||||
|
||||
namespace binaryninja::api_compat {
|
||||
|
||||
Reference in New Issue
Block a user