示例#1
0
 def list_of_type(self, type, member):
     head = self
     node = head
     if node:
         yield basic.container_of(node, type, member)
     while node and node != head:
         yield basic.container_of(node, type, member)
         node = node.next.deref()
示例#2
0
 def list_of_type(self, type, member):
     head = self
     node = head
     if node:
         yield basic.container_of(node, type, member)
     while node and node != head:
         yield basic.container_of(node, type, member)
         node = node.next.deref()
示例#3
0
    def render(self, renderer):
        renderer.table_header([
                ("Module", "module_addr", "[addrpad]"),
                ("Module Name", "module", "30"),
                ("Ref Count", "refcount", "^10"),
                ("Known", "known", ""),
                ])
        lsmod = self.session.plugins.lsmod(session=self.session)

        # We check the container module for membership so we do not get fulled
        # by simple name clashes.
        modules = set(lsmod.get_module_list())

        for kobj in self.get_kset_modules():
            name = kobj.name.deref()
            ref_count = kobj.kref.refcount.counter

            # Real modules have at least 3 references in sysfs.
            if ref_count < 3:
                continue

            container_module = basic.container_of(kobj, "module", "mkobj")

            renderer.table_row(container_module, container_module.name,
                               ref_count, container_module in modules)
示例#4
0
    def render(self, renderer):
        renderer.table_header([
            ("Module", "module_addr", "[addrpad]"),
            ("Module Name", "module", "30"),
            ("Ref Count", "refcount", "^10"),
            ("Known", "known", ""),
        ])
        lsmod = self.session.plugins.lsmod(session=self.session)

        # We check the container module for membership so we do not get fulled
        # by simple name clashes.
        modules = set(lsmod.get_module_list())

        for kobj in self.get_kset_modules():
            name = kobj.name.deref()
            ref_count = kobj.kref.refcount.counter

            # Real modules have at least 3 references in sysfs.
            if ref_count < 3:
                continue

            container_module = basic.container_of(kobj, "module", "mkobj")

            renderer.table_row(container_module, container_module.name,
                               ref_count, container_module in modules)
示例#5
0
    def sockets(self):
        """Enumerate all socket objects."""

        lsof = self.session.plugins.lsof(session=self.session)
        for task, file_struct, fd in lsof.lsof():
            if (file_struct.f_op == self.profile.get_constant(
                "socket_file_ops") or
                file_struct.m("d_entry").d_op == self.profile.get_constant(
                    "sockfs_dentry_operations")):

                iaddr = file_struct.dentry.d_inode

                # See http://lxr.free-electrons.com/source/include/net/sock.h?v=3.8#L1319
                skt = basic.container_of(iaddr, "socket_alloc",
                                         "vfs_inode").socket

                yield task, fd, skt.sk, iaddr
示例#6
0
    def sockets(self):
        """Enumerate all socket objects."""

        lsof = self.session.plugins.lsof(session=self.session)
        for task, file_struct, fd in lsof.lsof():
            if (file_struct.f_op
                    == self.profile.get_constant("socket_file_ops")
                    or file_struct.m("d_entry").d_op
                    == self.profile.get_constant("sockfs_dentry_operations")):

                iaddr = file_struct.dentry.d_inode

                # See http://lxr.free-electrons.com/source/include/net/sock.h?v=3.8#L1319
                skt = basic.container_of(iaddr, "socket_alloc",
                                         "vfs_inode").socket

                yield task, fd, skt.sk, iaddr
示例#7
0
    def collect(self):
        lsmod = self.session.plugins.lsmod(session=self.session)

        # We check the container module for membership so we do not get fulled
        # by simple name clashes.
        modules = set(lsmod.get_module_list())

        for kobj in self.get_kset_modules():
            ref_count = kobj.kref.refcount.refcounter

            # Real modules have at least 3 references in sysfs.
            if ref_count < 3:
                continue

            container_module = basic.container_of(kobj, "module", "mkobj")

            yield dict(module=container_module, mod_name=container_module.name,
                       ref_count=ref_count, known=container_module in modules)
示例#8
0
    def collect(self):
        lsmod = self.session.plugins.lsmod(session=self.session)

        # We check the container module for membership so we do not get fulled
        # by simple name clashes.
        modules = set(lsmod.get_module_list())

        for kobj in self.get_kset_modules():
            ref_count = kobj.kref.refcount.counter

            # Real modules have at least 3 references in sysfs.
            if ref_count < 3:
                continue

            container_module = basic.container_of(kobj, "module", "mkobj")

            yield dict(module=container_module, mod_name=container_module.name,
                       ref_count=ref_count, known=container_module in modules)
示例#9
0
文件: vfs.py 项目: Ankit89234/rekall
 def _real_mount(self, vfsmnt):
     """Return the mount container of the vfsmnt object."""
     return basic.container_of(vfsmnt, "mount", "mnt").reference()
示例#10
0
 def _real_mount(self, vfsmnt):
     """Return the mount container of the vfsmnt object."""
     return basic.container_of(vfsmnt, "mount", "mnt").reference()
示例#11
0
文件: linux.py 项目: vicgc/rekall
    def list_of_type(self, type, member):
        hlist = self.first.deref()
        while hlist:
            yield basic.container_of(hlist, type, member)

            hlist = hlist.next
示例#12
0
文件: linux.py 项目: imclab/rekall
    def list_of_type(self, type, member):
        hlist = self.first.deref()
        while hlist:
            yield basic.container_of(hlist, type, member)

            hlist = hlist.next