diff options
Diffstat (limited to 'plugins/pdb-ng/src')
| -rw-r--r-- | plugins/pdb-ng/src/lib.rs | 12 | ||||
| -rw-r--r-- | plugins/pdb-ng/src/parser.rs | 10 | ||||
| -rw-r--r-- | plugins/pdb-ng/src/struct_grouper.rs | 10 | ||||
| -rw-r--r-- | plugins/pdb-ng/src/symbol_parser.rs | 4 | ||||
| -rw-r--r-- | plugins/pdb-ng/src/type_parser.rs | 10 |
5 files changed, 23 insertions, 23 deletions
diff --git a/plugins/pdb-ng/src/lib.rs b/plugins/pdb-ng/src/lib.rs index 188b2ed5..a87a8076 100644 --- a/plugins/pdb-ng/src/lib.rs +++ b/plugins/pdb-ng/src/lib.rs @@ -13,7 +13,6 @@ // limitations under the License. #![allow(dead_code)] -use std::collections::HashMap; use std::env::{current_dir, current_exe, temp_dir}; use std::io::Cursor; use std::path::PathBuf; @@ -31,7 +30,6 @@ use binaryninja::download_provider::{DownloadInstanceInputOutputCallbacks, Downl use binaryninja::interaction::{MessageBoxButtonResult, MessageBoxButtonSet}; use binaryninja::logger::Logger; use binaryninja::settings::{QueryOptions, Settings}; -use binaryninja::string::BnString; use binaryninja::{interaction, user_directory}; use parser::PDBParserInstance; @@ -196,7 +194,7 @@ fn read_from_sym_store(bv: &BinaryView, path: &str) -> Result<(bool, Vec<u8>)> { .perform_custom_request( "GET", path, - HashMap::<BnString, BnString>::new(), + vec![], DownloadInstanceInputOutputCallbacks { read: None, write: Some(Box::new(write)), @@ -278,21 +276,21 @@ fn search_sym_store( } fn parse_pdb_info(view: &BinaryView) -> Option<PDBInfo> { - match view.get_metadata::<u64, _>("DEBUG_INFO_TYPE") { + match view.get_metadata::<u64>("DEBUG_INFO_TYPE") { Some(Ok(0x53445352 /* 'SDSR' */)) => {} _ => return None, } // This is stored in the BV by the PE loader - let file_path = match view.get_metadata::<String, _>("PDB_FILENAME") { + let file_path = match view.get_metadata::<String>("PDB_FILENAME") { Some(Ok(md)) => md, _ => return None, }; - let mut guid = match view.get_metadata::<Vec<u8>, _>("PDB_GUID") { + let mut guid = match view.get_metadata::<Vec<u8>>("PDB_GUID") { Some(Ok(md)) => md, _ => return None, }; - let age = match view.get_metadata::<u64, _>("PDB_AGE") { + let age = match view.get_metadata::<u64>("PDB_AGE") { Some(Ok(md)) => md as u32, _ => return None, }; diff --git a/plugins/pdb-ng/src/parser.rs b/plugins/pdb-ng/src/parser.rs index 783a8a2d..2ca8e209 100644 --- a/plugins/pdb-ng/src/parser.rs +++ b/plugins/pdb-ng/src/parser.rs @@ -168,7 +168,8 @@ impl<'a, S: Source<'a> + 'a> PDBParserInstance<'a, S> { ) -> Result<()> { self.parse_types(Self::split_progress(&progress, 0, &[1.0, 3.0, 0.5, 0.5]))?; for (name, ty) in self.named_types.iter() { - self.debug_info.add_type(name, ty.as_ref(), &[]); // TODO : Components + self.debug_info + .add_type(&name.to_string(), ty.as_ref(), &[]); // TODO : Components } info!( @@ -406,7 +407,8 @@ impl<'a, S: Source<'a> + 'a> PDBParserInstance<'a, S> { match class { NamedTypeReferenceClass::UnknownNamedTypeClass | NamedTypeReferenceClass::TypedefNamedTypeClass => { - self.debug_info.add_type(&name, Type::void().as_ref(), &[]); + self.debug_info + .add_type(&name.to_string(), Type::void().as_ref(), &[]); // TODO : Components } NamedTypeReferenceClass::ClassNamedTypeClass @@ -429,7 +431,7 @@ impl<'a, S: Source<'a> + 'a> PDBParserInstance<'a, S> { structure.alignment(1); self.debug_info.add_type( - &name, + &name.to_string(), Type::structure(structure.finalize().as_ref()).as_ref(), &[], // TODO : Components ); @@ -437,7 +439,7 @@ impl<'a, S: Source<'a> + 'a> PDBParserInstance<'a, S> { NamedTypeReferenceClass::EnumNamedTypeClass => { let enumeration = EnumerationBuilder::new(); self.debug_info.add_type( - &name, + &name.to_string(), Type::enumeration( enumeration.finalize().as_ref(), self.arch.default_integer_size().try_into()?, diff --git a/plugins/pdb-ng/src/struct_grouper.rs b/plugins/pdb-ng/src/struct_grouper.rs index 09a81fa7..ff911afd 100644 --- a/plugins/pdb-ng/src/struct_grouper.rs +++ b/plugins/pdb-ng/src/struct_grouper.rs @@ -361,7 +361,7 @@ pub fn group_structure( for member in members { structure.insert( &member.ty, - member.name.clone(), + &member.name, member.offset, false, member.access, @@ -390,7 +390,7 @@ fn apply_groups( if offset > member.offset { structure.insert( &member.ty, - member.name.clone(), + &member.name, 0, false, member.access, @@ -399,7 +399,7 @@ fn apply_groups( } else { structure.insert( &member.ty, - member.name.clone(), + &member.name, member.offset - offset, false, member.access, @@ -412,7 +412,7 @@ fn apply_groups( apply_groups(members, &mut inner, children, inner_offset); structure.insert( &Conf::new(Type::structure(inner.finalize().as_ref()), MAX_CONFIDENCE), - format!("__inner{}", i), + &format!("__inner{}", i), inner_offset - offset, false, MemberAccess::PublicAccess, @@ -425,7 +425,7 @@ fn apply_groups( apply_groups(members, &mut inner, children, inner_offset); structure.insert( &Conf::new(Type::structure(inner.finalize().as_ref()), MAX_CONFIDENCE), - format!("__inner{}", i), + &format!("__inner{}", i), inner_offset - offset, false, MemberAccess::PublicAccess, diff --git a/plugins/pdb-ng/src/symbol_parser.rs b/plugins/pdb-ng/src/symbol_parser.rs index 6d6e978e..79049d03 100644 --- a/plugins/pdb-ng/src/symbol_parser.rs +++ b/plugins/pdb-ng/src/symbol_parser.rs @@ -2027,13 +2027,13 @@ impl<'a, S: Source<'a> + 'a> PDBParserInstance<'a, S> { Some(X86(xreg)) => { self.log(|| format!("Register {:?} ==> {:?}", reg, xreg)); self.arch - .register_by_name(xreg.to_string().to_lowercase()) + .register_by_name(&xreg.to_string().to_lowercase()) .map(|reg| reg.id()) } Some(AMD64(areg)) => { self.log(|| format!("Register {:?} ==> {:?}", reg, areg)); self.arch - .register_by_name(areg.to_string().to_lowercase()) + .register_by_name(&areg.to_string().to_lowercase()) .map(|reg| reg.id()) } // TODO: Other arches diff --git a/plugins/pdb-ng/src/type_parser.rs b/plugins/pdb-ng/src/type_parser.rs index 61c64218..d4d5feb4 100644 --- a/plugins/pdb-ng/src/type_parser.rs +++ b/plugins/pdb-ng/src/type_parser.rs @@ -898,7 +898,7 @@ impl<'a, S: Source<'a> + 'a> PDBParserInstance<'a, S> { bitfield_builder .as_mut() .expect("Invariant") - .insert(&m.ty, m.name, 0, false, m.access, m.scope); + .insert(&m.ty, &m.name, 0, false, m.access, m.scope); } (None, None) => { if let Some(mut builder) = bitfield_builder.take() { @@ -1633,7 +1633,7 @@ impl<'a, S: Source<'a> + 'a> PDBParserInstance<'a, S> { for field in fields { match field { ParsedType::Enumerate(member) => { - enumeration.insert(member.name.clone(), member.value); + enumeration.insert(&member.name, member.value); } e => return Err(anyhow!("Unexpected enumerate member: {:?}", e)), } @@ -1803,7 +1803,7 @@ impl<'a, S: Source<'a> + 'a> PDBParserInstance<'a, S> { if group.len() == 1 { structure.insert( &group[0].ty, - group[0].name.clone(), + &group[0].name, group[0].offset, false, group[0].access, @@ -1814,7 +1814,7 @@ impl<'a, S: Source<'a> + 'a> PDBParserInstance<'a, S> { for member in group { inner_struct.insert( &member.ty, - member.name.clone(), + &member.name, member.offset, false, member.access, @@ -1826,7 +1826,7 @@ impl<'a, S: Source<'a> + 'a> PDBParserInstance<'a, S> { Type::structure(inner_struct.finalize().as_ref()), MAX_CONFIDENCE, ), - format!("__inner{:x}", i), + &format!("__inner{:x}", i), 0, false, MemberAccess::PublicAccess, |
