Example #1
0
    def __init__(self, ci_item, parent=None):
        super(ClassInstanceItemView, self).__init__(parent)
        self._ci_item = ci_item

        try:
            txt = dump_instance(ci_item.ci)
        except:
            txt = traceback.format_exc()
        self.addTab(FixedWidthTextView(txt), "Instance details")

        self.addTab(FixedWidthTextView(dump_layout(ci_item.cd, ci_item.cl)), "Definition details")

        # TODO: hack get_parsers() until we have a unified repo/config
        vv = VstructViewWidget(get_parsers(), self._ci_item.structs, self._ci_item.data)
        self.addTab(vv, "Structures")

        hv = HexViewWidget(self._ci_item.data)
        self.addTab(hv, "Hex view")
Example #2
0
def main(type_, path, namespaceName, className, key_specifier=None):
    if type_ not in ("xp", "win7"):
        raise RuntimeError("Invalid mapping type: {:s}".format(type_))

    c = CIM(type_, path)
    index = Index(c.cim_type, c.logical_index_store)
    o = ObjectResolver(c, index)

    cd = o.get_cd(namespaceName, className)
    cl = o.get_cl(namespaceName, className)

    instances = []
    if key_specifier:
        key_values = key_specifier.split(",")
        key = InstanceKey()
        for key_value in key_values:
            if "=" not in key_value:
                raise RuntimeError("Invalid key specifier: " + str(key_value))
            k, _, v = key_value.partition("=")
            key[k] = v
        print(str(key))
        ci = o.get_ci(namespaceName, className, key)
        instances.append(ci)

    else:
        for instance in o.get_cd_children_ci(namespaceName, className):
            ci = o.get_ci(namespaceName, className, instance.instance_key)
            instances.append(ci)

    for instance in instances:
        print("%s" % "=" * 80)
        #print(compute_instance_hash(index, instance))
        try:
            print(
                dump_instance(instance,
                              encoding='ascii',
                              encoding_errors='ignore'))
        except:
            print("ERROR: failed to dump class instance!")
            print(traceback.format_exc())
def main(type_, path, namespaceName, className, key_specifier=None):
    if type_ not in ("xp", "win7"):
        raise RuntimeError("Invalid mapping type: {:s}".format(type_))

    c = CIM(type_, path)
    index = Index(c.cim_type, c.logical_index_store)
    o = ObjectResolver(c, index)

    cd = o.get_cd(namespaceName, className)
    cl = o.get_cl(namespaceName, className)

    instances = []
    if key_specifier:
        key_values = key_specifier.split(",")
        key = InstanceKey()
        for key_value in key_values:
            if "=" not in key_value:
                raise RuntimeError("Invalid key specifier: " + str(key_value))
            k, _, v = key_value.partition("=")
            key[k] = v
        print(str(key))
        ci = o.get_ci(namespaceName, className, key)
        instances.append(ci)

    else:
        for instance in o.get_cd_children_ci(namespaceName, className):
            ci = o.get_ci(namespaceName, className, instance.instance_key)
            instances.append(ci)

    for instance in instances:
        print("%s" % "=" * 80)
        #print(compute_instance_hash(index, instance))
        try:
            print(dump_instance(instance))
        except:
            print("ERROR: failed to dump class instance!")
            print(traceback.format_exc())