'libs() -> dict
Returns a dictionary mapping the address of each loaded library in the
process\'s address space.
If ``/proc/$PID/maps`` cannot be opened, the output of ldd is used
verbatim, which may be different than the actual addresses if ASLR
is enabled.'

def libs(self):

    maps = self.parent.libs(self.executable)
    maps_raw = self.parent.cat(('/proc/%d/maps' % self.pid))
    for lib in maps:
        remote_path = lib.split(self.parent.host)[(-1)]
        for line in maps_raw.splitlines():
            if line.endswith(remote_path):
                address = line.split('-')[0]
                maps[lib] = int(address, 16)
                break
    return maps
