Guest User

dump-vdso

a guest
Jan 2nd, 2018
326
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 0.69 KB | None | 0 0
  1. #!/usr/bin/perl
  2. # Copyright 2017 Matt Keenan <matt@mattkeenan.net>
  3. # Licensed under GPL 3.0 or newer
  4.  
  5. # Quick Perl program to dump your kernel's vDSO to vdso.elf file
  6.  
  7. use strict;
  8.  
  9. open(my $proc_maps,"<","/proc/$$/maps") or die("open: /proc/$$/maps: $!");
  10. my @map=<$proc_maps>;
  11. close($proc_maps);
  12.  
  13. my ($start,$size);
  14. foreach my $map_ent (@map)
  15. {
  16.   next unless $map_ent=~m/^([0-9a-f]+)-([0-9a-f]+) .* \[vdso\]$/;
  17.  
  18.   $size=hex($2)-hex($1);
  19.   $start=$1;
  20.   print STDERR "start: $start finish: $2 size: $size\n";
  21. }
  22.  
  23. my $buff=unpack("P$size",pack('Q',hex($start)));
  24.  
  25. open(my $vdso_dump,">","vdso.elf") or die("open: vdso.elf: $!");
  26. syswrite($vdso_dump,$buff,$size);
  27. close($vdso_dump);
Add Comment
Please, Sign In to add comment