/// Find matches from specific entry point addresses.
///
/// # Arguments
///
/// * `range` - address bounds for memory address differences between pointers.
/// * `max_depth` - how deep to scan inside the pointer map.
/// * `search_for` - addresses to find the links for.
/// * `entry_points` - valid entry point addresses.
Find matches from specific entry point addresses.
Find matches from specific entry point addresses .
pub fn find_matches_addrs(
        &self,
        range: (usize, usize),
        max_depth: usize,
        search_for: &[Address],
        entry_points: &[Address],
    ) -> Vec<(Address, Vec<(Address, isize)>)> {
        let mut matches = vec![];
        let pb = PBar::new(100000, false);
        let part = 1.0 / search_for.len() as f32;
        matches.par_extend(search_for.par_iter().enumerate().flat_map(|(i, &m)| {
            let mut matches = vec![];
            self.walk_down_range(
                m,
                range,
                max_depth,
                1,
                entry_points,
                &mut matches,
                (m, &mut vec![]),
                &pb,
                (part * i as f32, part * (i + 1) as f32),
            );
            pb.set((100000.0 * part * (i + 1) as f32).round() as u64);
            matches.into_par_iter()
        }));
        pb.finish();
        matches
    }
pub fn find_matches_addrs ( & self , range : ( usize , usize ) , max_depth : usize , search_for : & [ Address ] , entry_points : & [ Address ] , ) -> Vec < ( Address , Vec < ( Address , isize ) > ) > { let mut matches = vec ! [ ] ; let pb = PBar :: new ( 100000 , false ) ; let part = 1.0 / search_for . len ( ) as f32 ; matches . par_extend ( search_for . par_iter ( ) . enumerate ( ) . flat_map ( | ( i , & m ) | { let mut matches = vec ! [ ] ; self . walk_down_range ( m , range , max_depth , 1 , entry_points , & mut matches , ( m , & mut vec ! [ ] ) , & pb , ( part * i as f32 , part * ( i + 1 ) as f32 ) , ) ; pb . set ( ( 100000.0 * part * ( i + 1 ) as f32 ) . round ( ) as u64 ) ; matches . into_par_iter ( ) } ) ) ; pb . finish ( ) ; matches }
Find matches from specific entry point addresses.
Find matches from specific entry point addresses .
&self
range
(usize, usize)
max_depth
usize
search_for
&[Address]
entry_points
&[Address]