#!/usr/bin/python


import os, re
from subprocess import Popen, PIPE

EXEC="vuln"

def get_bss(pid):
   regx = re.compile("([0-9a-f]+)\-([0-9a-f]+) rw-p (.*)" + EXEC + "$")

   f = open("/proc/" + str(pid) + "/maps")
   data = f.readlines()
   f.close

   for line in data:
      res = regx.match(line.strip("\n"))
      if res != None:
         return (res.group(1),res.group(2))

   return None


def main():
   sub = Popen(["./" + EXEC],stdout=PIPE,shell=False)

   bss = get_bss(sub.pid)

   if bss == None:
      print "No BSS found..."
   else:
      (start,end) = bss
      print "BSS from 0x" + start + " to 0x" + end


if __name__ == "__main__":
   main()
