summaryrefslogtreecommitdiff
path: root/plugins/warp
diff options
context:
space:
mode:
authorMason Reed <mason@vector35.com>2026-04-21 18:10:51 -0700
committerMason Reed <35282038+emesare@users.noreply.github.com>2026-05-10 17:13:08 -0700
commitc4ba6d79ae3b96d56cc6b3744e7c64e004ecd161 (patch)
tree5762fc3ff58b57caec5f42176faf6635c464b4f3 /plugins/warp
parent8269a8ac29e59c7949af753dac5c1f36bb700903 (diff)
[Rust] Refactor `binary_view` module
- Remove the "viral" `BinaryViewExt` trait and its blanket impl - Split up the binary view type from the custom trait impl - Simplify and fix bugs regarding custom binary view initialization - Rewrite Minidump binary view example, parses the PE headers to create proper sections now - Add some extra documentation - Add unit test for custom binary view
Diffstat (limited to 'plugins/warp')
-rw-r--r--plugins/warp/benches/convert.rs1
-rw-r--r--plugins/warp/benches/function.rs1
-rw-r--r--plugins/warp/benches/guid.rs1
-rw-r--r--plugins/warp/src/cache.rs2
-rw-r--r--plugins/warp/src/cache/function.rs1
-rw-r--r--plugins/warp/src/cache/guid.rs1
-rw-r--r--plugins/warp/src/convert/symbol.rs2
-rw-r--r--plugins/warp/src/convert/types.rs1
-rw-r--r--plugins/warp/src/lib.rs2
-rw-r--r--plugins/warp/src/matcher.rs2
-rw-r--r--plugins/warp/src/plugin/load.rs2
-rw-r--r--plugins/warp/src/plugin/workflow.rs2
-rw-r--r--plugins/warp/src/processor.rs2
-rw-r--r--plugins/warp/tests/determinism.rs1
-rw-r--r--plugins/warp/tests/matcher.rs2
15 files changed, 8 insertions, 15 deletions
diff --git a/plugins/warp/benches/convert.rs b/plugins/warp/benches/convert.rs
index e0acdc15..d1bf9dd6 100644
--- a/plugins/warp/benches/convert.rs
+++ b/plugins/warp/benches/convert.rs
@@ -1,4 +1,3 @@
-use binaryninja::binary_view::BinaryViewExt;
use binaryninja::headless::Session;
use criterion::{criterion_group, criterion_main, Criterion};
use std::path::PathBuf;
diff --git a/plugins/warp/benches/function.rs b/plugins/warp/benches/function.rs
index 299ed1eb..a9cfd26a 100644
--- a/plugins/warp/benches/function.rs
+++ b/plugins/warp/benches/function.rs
@@ -1,4 +1,3 @@
-use binaryninja::binary_view::BinaryViewExt;
use binaryninja::headless::Session;
use criterion::{criterion_group, criterion_main, Criterion};
use rayon::prelude::*;
diff --git a/plugins/warp/benches/guid.rs b/plugins/warp/benches/guid.rs
index eddf2f06..f8c7f4b5 100644
--- a/plugins/warp/benches/guid.rs
+++ b/plugins/warp/benches/guid.rs
@@ -1,4 +1,3 @@
-use binaryninja::binary_view::BinaryViewExt;
use binaryninja::headless::Session;
use criterion::{criterion_group, criterion_main, Criterion};
use std::path::PathBuf;
diff --git a/plugins/warp/src/cache.rs b/plugins/warp/src/cache.rs
index d9a5a8d1..5b3469c1 100644
--- a/plugins/warp/src/cache.rs
+++ b/plugins/warp/src/cache.rs
@@ -7,7 +7,7 @@ pub use function::*;
pub use guid::*;
pub use type_reference::*;
-use binaryninja::binary_view::{BinaryView, BinaryViewExt};
+use binaryninja::binary_view::BinaryView;
use binaryninja::function::Function as BNFunction;
use binaryninja::object_destructor::{register_object_destructor, ObjectDestructor};
use binaryninja::rc::Guard;
diff --git a/plugins/warp/src/cache/function.rs b/plugins/warp/src/cache/function.rs
index 79b9e86a..d7eae3af 100644
--- a/plugins/warp/src/cache/function.rs
+++ b/plugins/warp/src/cache/function.rs
@@ -1,5 +1,4 @@
use crate::convert::{comment_to_bn_comment, to_bn_symbol_at_address};
-use binaryninja::binary_view::BinaryViewExt;
use binaryninja::function::{Function as BNFunction, FunctionUpdateType};
use binaryninja::symbol::SymbolType;
use warp::signature::function::Function;
diff --git a/plugins/warp/src/cache/guid.rs b/plugins/warp/src/cache/guid.rs
index ede54013..3b3e4a31 100644
--- a/plugins/warp/src/cache/guid.rs
+++ b/plugins/warp/src/cache/guid.rs
@@ -1,7 +1,6 @@
use crate::cache::FunctionID;
use crate::convert::from_bn_symbol;
use crate::function_guid;
-use binaryninja::binary_view::BinaryViewExt;
use binaryninja::function::Function as BNFunction;
use binaryninja::low_level_il::function::{FunctionMutability, LowLevelILFunction, NonSSA};
use binaryninja::rc::Ref as BNRef;
diff --git a/plugins/warp/src/convert/symbol.rs b/plugins/warp/src/convert/symbol.rs
index 0107cff5..5d794d30 100644
--- a/plugins/warp/src/convert/symbol.rs
+++ b/plugins/warp/src/convert/symbol.rs
@@ -1,4 +1,4 @@
-use binaryninja::binary_view::{BinaryView, BinaryViewExt};
+use binaryninja::binary_view::BinaryView;
use binaryninja::rc::Ref as BNRef;
use binaryninja::symbol::Symbol as BNSymbol;
use binaryninja::symbol::SymbolType as BNSymbolType;
diff --git a/plugins/warp/src/convert/types.rs b/plugins/warp/src/convert/types.rs
index abfa3bc9..6969ac67 100644
--- a/plugins/warp/src/convert/types.rs
+++ b/plugins/warp/src/convert/types.rs
@@ -490,7 +490,6 @@ pub fn to_bn_type<A: BNArchitecture + Copy>(arch: Option<A>, ty: &Type) -> BNRef
#[cfg(test)]
mod tests {
use super::*;
- use binaryninja::binary_view::BinaryViewExt;
use binaryninja::headless::Session;
use std::path::PathBuf;
use warp::r#type::guid::TypeGUID;
diff --git a/plugins/warp/src/lib.rs b/plugins/warp/src/lib.rs
index e0aaeed3..11f85566 100644
--- a/plugins/warp/src/lib.rs
+++ b/plugins/warp/src/lib.rs
@@ -4,7 +4,7 @@ use binaryninja::architecture::{
Architecture, ImplicitRegisterExtend, Register as BNRegister, RegisterInfo,
};
use binaryninja::basic_block::BasicBlock as BNBasicBlock;
-use binaryninja::binary_view::{BinaryView, BinaryViewExt};
+use binaryninja::binary_view::BinaryView;
use binaryninja::confidence::MAX_CONFIDENCE;
use binaryninja::function::{Function as BNFunction, NativeBlock};
use binaryninja::low_level_il::expression::{
diff --git a/plugins/warp/src/matcher.rs b/plugins/warp/src/matcher.rs
index f96128e5..69bfd4b6 100644
--- a/plugins/warp/src/matcher.rs
+++ b/plugins/warp/src/matcher.rs
@@ -2,7 +2,7 @@ use crate::cache::cached_constraints;
use crate::container::{Container, SourceId};
use crate::convert::to_bn_type;
use binaryninja::architecture::Architecture as BNArchitecture;
-use binaryninja::binary_view::{BinaryView, BinaryViewExt};
+use binaryninja::binary_view::BinaryView;
use binaryninja::function::Function as BNFunction;
use binaryninja::settings::{QueryOptions, Settings as BNSettings};
use serde_json::json;
diff --git a/plugins/warp/src/plugin/load.rs b/plugins/warp/src/plugin/load.rs
index 2be473d8..9ec6eaed 100644
--- a/plugins/warp/src/plugin/load.rs
+++ b/plugins/warp/src/plugin/load.rs
@@ -3,7 +3,7 @@ use crate::container::disk::{DiskContainer, DiskContainerSource};
use crate::container::{ContainerError, SourcePath};
use crate::convert::platform_to_target;
use crate::plugin::workflow::run_matcher;
-use binaryninja::binary_view::{BinaryView, BinaryViewExt};
+use binaryninja::binary_view::BinaryView;
use binaryninja::command::Command;
use binaryninja::interaction::{
show_message_box, Form, FormInputField, MessageBoxButtonResult, MessageBoxButtonSet,
diff --git a/plugins/warp/src/plugin/workflow.rs b/plugins/warp/src/plugin/workflow.rs
index c1728b5e..c2915717 100644
--- a/plugins/warp/src/plugin/workflow.rs
+++ b/plugins/warp/src/plugin/workflow.rs
@@ -10,7 +10,7 @@ use crate::plugin::settings::PluginSettings;
use crate::{get_warp_ignore_tag_type, get_warp_tag_type, relocatable_regions, IGNORE_TAG_NAME};
use binaryninja::architecture::RegisterId;
use binaryninja::background_task::BackgroundTask;
-use binaryninja::binary_view::{BinaryView, BinaryViewExt};
+use binaryninja::binary_view::BinaryView;
use binaryninja::command::Command;
use binaryninja::function::Function as BNFunction;
use binaryninja::rc::Ref as BNRef;
diff --git a/plugins/warp/src/processor.rs b/plugins/warp/src/processor.rs
index 32310d3c..666f8df3 100644
--- a/plugins/warp/src/processor.rs
+++ b/plugins/warp/src/processor.rs
@@ -19,7 +19,7 @@ use thiserror::Error;
use walkdir::WalkDir;
use binaryninja::background_task::BackgroundTask;
-use binaryninja::binary_view::{BinaryView, BinaryViewExt};
+use binaryninja::binary_view::BinaryView;
use binaryninja::function::Function as BNFunction;
use binaryninja::project::file::ProjectFile;
use binaryninja::project::Project;
diff --git a/plugins/warp/tests/determinism.rs b/plugins/warp/tests/determinism.rs
index 5100b436..50361562 100644
--- a/plugins/warp/tests/determinism.rs
+++ b/plugins/warp/tests/determinism.rs
@@ -1,5 +1,4 @@
//! This tests to make sure the function GUIDs are stable.
-use binaryninja::binary_view::BinaryViewExt;
use binaryninja::headless::Session;
use std::collections::BTreeMap;
use std::path::PathBuf;
diff --git a/plugins/warp/tests/matcher.rs b/plugins/warp/tests/matcher.rs
index d2d7a960..5703419b 100644
--- a/plugins/warp/tests/matcher.rs
+++ b/plugins/warp/tests/matcher.rs
@@ -1,5 +1,5 @@
use binaryninja::architecture::CoreArchitecture;
-use binaryninja::binary_view::{BinaryView, BinaryViewExt};
+use binaryninja::binary_view::BinaryView;
use binaryninja::file_metadata::FileMetadata;
use binaryninja::function::Function as BNFunction;
use binaryninja::headless::Session;