summaryrefslogtreecommitdiff
path: root/plugins/workflow_objc/src
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/workflow_objc/src
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/workflow_objc/src')
-rw-r--r--plugins/workflow_objc/src/activities/alloc_init.rs5
-rw-r--r--plugins/workflow_objc/src/activities/objc_msg_send_calls.rs2
-rw-r--r--plugins/workflow_objc/src/activities/objc_msg_send_calls/adjust_call_type.rs2
-rw-r--r--plugins/workflow_objc/src/activities/remove_memory_management.rs2
-rw-r--r--plugins/workflow_objc/src/activities/super_init.rs2
-rw-r--r--plugins/workflow_objc/src/activities/util.rs2
-rw-r--r--plugins/workflow_objc/src/metadata/global_state.rs7
-rw-r--r--plugins/workflow_objc/src/metadata/selector.rs2
8 files changed, 9 insertions, 15 deletions
diff --git a/plugins/workflow_objc/src/activities/alloc_init.rs b/plugins/workflow_objc/src/activities/alloc_init.rs
index 5c8bf064..953e0738 100644
--- a/plugins/workflow_objc/src/activities/alloc_init.rs
+++ b/plugins/workflow_objc/src/activities/alloc_init.rs
@@ -1,8 +1,5 @@
use binaryninja::{
- binary_view::{BinaryView, BinaryViewExt as _},
- medium_level_il::MediumLevelILLiftedInstruction,
- rc::Ref,
- types::Type,
+ binary_view::BinaryView, medium_level_il::MediumLevelILLiftedInstruction, rc::Ref, types::Type,
workflow::AnalysisContext,
};
use bstr::ByteSlice;
diff --git a/plugins/workflow_objc/src/activities/objc_msg_send_calls.rs b/plugins/workflow_objc/src/activities/objc_msg_send_calls.rs
index 157bb19c..41fc38c0 100644
--- a/plugins/workflow_objc/src/activities/objc_msg_send_calls.rs
+++ b/plugins/workflow_objc/src/activities/objc_msg_send_calls.rs
@@ -1,5 +1,5 @@
use binaryninja::{
- binary_view::{BinaryView, BinaryViewExt as _},
+ binary_view::BinaryView,
function::Function,
low_level_il::{
expression::{ExpressionHandler as _, LowLevelILExpressionKind},
diff --git a/plugins/workflow_objc/src/activities/objc_msg_send_calls/adjust_call_type.rs b/plugins/workflow_objc/src/activities/objc_msg_send_calls/adjust_call_type.rs
index 07e83ba7..4d22476a 100644
--- a/plugins/workflow_objc/src/activities/objc_msg_send_calls/adjust_call_type.rs
+++ b/plugins/workflow_objc/src/activities/objc_msg_send_calls/adjust_call_type.rs
@@ -1,6 +1,6 @@
use binaryninja::{
architecture::CoreRegister,
- binary_view::{BinaryView, BinaryViewBase as _, BinaryViewExt},
+ binary_view::{BinaryView, BinaryViewBase as _},
confidence::Conf,
function::Function,
low_level_il::{
diff --git a/plugins/workflow_objc/src/activities/remove_memory_management.rs b/plugins/workflow_objc/src/activities/remove_memory_management.rs
index cd613ee2..a6389d22 100644
--- a/plugins/workflow_objc/src/activities/remove_memory_management.rs
+++ b/plugins/workflow_objc/src/activities/remove_memory_management.rs
@@ -1,6 +1,6 @@
use binaryninja::{
architecture::{Architecture as _, CoreRegister, Register as _, RegisterInfo as _},
- binary_view::{BinaryView, BinaryViewExt as _},
+ binary_view::BinaryView,
low_level_il::{
expression::{ExpressionHandler, LowLevelILExpressionKind},
function::{LowLevelILFunction, Mutable, NonSSA},
diff --git a/plugins/workflow_objc/src/activities/super_init.rs b/plugins/workflow_objc/src/activities/super_init.rs
index 7b6bb3f7..533fe9e6 100644
--- a/plugins/workflow_objc/src/activities/super_init.rs
+++ b/plugins/workflow_objc/src/activities/super_init.rs
@@ -1,5 +1,5 @@
use binaryninja::{
- binary_view::{BinaryView, BinaryViewBase as _, BinaryViewExt as _},
+ binary_view::{BinaryView, BinaryViewBase as _},
medium_level_il::{
operation::{Constant, LiftedSetVarSsa, LiftedSetVarSsaField, Var, VarSsa},
MediumLevelILLiftedInstruction, MediumLevelILLiftedInstructionKind,
diff --git a/plugins/workflow_objc/src/activities/util.rs b/plugins/workflow_objc/src/activities/util.rs
index 3ac7df7c..d9acf29f 100644
--- a/plugins/workflow_objc/src/activities/util.rs
+++ b/plugins/workflow_objc/src/activities/util.rs
@@ -1,5 +1,5 @@
use binaryninja::{
- binary_view::{BinaryView, BinaryViewExt as _},
+ binary_view::BinaryView,
confidence::Conf,
function::Function,
medium_level_il::{
diff --git a/plugins/workflow_objc/src/metadata/global_state.rs b/plugins/workflow_objc/src/metadata/global_state.rs
index 6c128e22..a3693140 100644
--- a/plugins/workflow_objc/src/metadata/global_state.rs
+++ b/plugins/workflow_objc/src/metadata/global_state.rs
@@ -1,7 +1,7 @@
use binaryninja::file_metadata::SessionId;
use binaryninja::object_destructor::register_object_destructor;
use binaryninja::{
- binary_view::{BinaryView, BinaryViewBase, BinaryViewExt},
+ binary_view::{BinaryView, BinaryViewBase},
file_metadata::FileMetadata,
metadata::Metadata,
object_destructor::ObjectDestructor,
@@ -155,10 +155,7 @@ impl AnalysisInfo {
}
fn load_selector_impls(&self, bv: &BinaryView) -> Option<SelectorImplementations> {
- let Some(Ok(meta)) = bv.get_metadata::<HashMap<String, Ref<Metadata>>>("Objective-C")
- else {
- return None;
- };
+ let meta = bv.get_metadata::<HashMap<String, Ref<Metadata>>>("Objective-C")?;
let version_meta = meta.get("version")?;
if version_meta.get_unsigned_integer()? != 1 {
tracing::error!(
diff --git a/plugins/workflow_objc/src/metadata/selector.rs b/plugins/workflow_objc/src/metadata/selector.rs
index de2e883e..aa51d8e9 100644
--- a/plugins/workflow_objc/src/metadata/selector.rs
+++ b/plugins/workflow_objc/src/metadata/selector.rs
@@ -1,5 +1,5 @@
use crate::Error;
-use binaryninja::binary_view::{BinaryView, BinaryViewBase as _, BinaryViewExt};
+use binaryninja::binary_view::{BinaryView, BinaryViewBase as _};
pub struct Selector {
pub name: String,