Advertisement
Guest User

Untitled

a guest
Mar 19th, 2019
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.89 KB | None | 0 0
  1. use regex::Regex;
  2. use std::{
  3. fs::{self, File},
  4. io::{Read, Seek, SeekFrom},
  5. };
  6.  
  7. fn main() {
  8. let maps_regex = Regex::new(r"([\w]+)-([\w]+) r").unwrap();
  9. let maps = fs::read_to_string("/proc/self/maps").unwrap();
  10.  
  11. let mut mem = File::open("/proc/self/mem").unwrap();
  12.  
  13. for map in maps.lines() {
  14. let captures = maps_regex.captures(&map).unwrap();
  15.  
  16. let start_adress: usize = usize::from_str_radix(&captures[1], 16).unwrap();
  17. let end_adress: usize = usize::from_str_radix(&captures[2], 16).unwrap();
  18.  
  19. mem.seek(SeekFrom::Start(start_adress as u64)).unwrap();
  20.  
  21. let mut memory = vec![0; end_adress - start_adress];
  22. mem.read_exact(&mut memory).unwrap();
  23.  
  24. let string: String = String::from_utf8_lossy(&memory)
  25. .chars()
  26. .filter(|&c| c != '�')
  27. .collect();
  28.  
  29. println!("{}", string);
  30. }
  31. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement