From f9bd8eb2a8aa8b492d4145624d12e7014c7ee65c Mon Sep 17 00:00:00 2001 From: Mason Reed Date: Thu, 6 Feb 2025 23:58:33 -0500 Subject: Fix BinaryReader and BinaryWriter not respecting image base in Rust API --- rust/tests/binary_reader.rs | 5 ++++- rust/tests/binary_writer.rs | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) (limited to 'rust/tests') diff --git a/rust/tests/binary_reader.rs b/rust/tests/binary_reader.rs index 88017052..592025e0 100644 --- a/rust/tests/binary_reader.rs +++ b/rust/tests/binary_reader.rs @@ -1,5 +1,5 @@ use binaryninja::binary_reader::BinaryReader; -use binaryninja::binary_view::BinaryViewBase; +use binaryninja::binary_view::{BinaryViewBase, BinaryViewExt}; use binaryninja::headless::Session; use rstest::*; use std::io::{Read, Seek, SeekFrom}; @@ -55,6 +55,9 @@ fn test_binary_reader_read(_session: &Session) { let view = binaryninja::load(out_dir.join("atox.obj")).expect("Failed to create view"); let mut reader = BinaryReader::new(&view); + // We want to do seeks with the image base. + reader.set_virtual_base(view.original_image_base()); + reader .seek(SeekFrom::Start(0)) .expect("Failed to seek to start"); diff --git a/rust/tests/binary_writer.rs b/rust/tests/binary_writer.rs index bc9c2165..632d0e64 100644 --- a/rust/tests/binary_writer.rs +++ b/rust/tests/binary_writer.rs @@ -1,5 +1,5 @@ use binaryninja::binary_reader::BinaryReader; -use binaryninja::binary_view::BinaryViewBase; +use binaryninja::binary_view::{BinaryViewBase, BinaryViewExt}; use binaryninja::binary_writer::BinaryWriter; use binaryninja::headless::Session; use rstest::*; @@ -17,7 +17,7 @@ fn test_binary_writer_seek(_session: &Session) { let out_dir = env!("OUT_DIR").parse::().unwrap(); let view = binaryninja::load(out_dir.join("atox.obj")).expect("Failed to create view"); let mut writer = BinaryWriter::new(&view); - let end_offset = view.len(); + let end_offset = view.original_image_base() + view.len(); // Test seeking to a specific position writer -- cgit v1.3.1