Share Pastebin
Guest
Public paste!

Dark Shikari

By: a guest | Oct 31st, 2009 | Syntax: Perl | Size: 0.50 KB | Hits: 615 | Expires: Never
Copy text to clipboard
  1. #!/usr/bin/perl
  2. open(FH, "-|", "objdump", "-d", "-M", "intel", $ARGV[0]) or die "objdump failed\n";
  3. while(<FH>){
  4.     if(/([0-9a-f]+) <(\S+)>:/) {
  5.         $start_addr = hex($1);
  6.         $name = $2;
  7.     } elsif(/^\s*([0-9a-f]+):\s+((?:[0-9a-f]{2} )+)/ and $name) {
  8.         $end_addr = hex($1) + split(/ /, $2);
  9.     } elsif(/^$/ and $name) {
  10.         printf("%d %s\n", $end_addr - $start_addr, $name);
  11.         undef $end_addr
  12.     }
  13. }
  14. printf("%d %s\n", $end_addr - $start_addr, $name) if $end_addr;