def __init__(self, jd, xnode):
     self.jd = jd
     self.symbolic_jterm_constant_table = IT.IndexedTable(
         'symbolic-jterm-constant-table')
     self.string_table = IT.IndexedTable('string-table')
     self.numerical_table = IT.IndexedTable('numerical-table')
     self.float_table = IT.IndexedTable('float-table')
     self.jterm_table = IT.IndexedTable('jterm-table')
     self.relational_expr_table = IT.IndexedTable('relational-expr-table')
     self.jterm_list_table = IT.IndexedTable('jterm-list-table')
     self.relational_expr_list_table = IT.IndexedTable(
         'relational-expr-list-table')
     self.jterm_range_table = IT.IndexedTable('jterm-range-table')
     self.tables = [
         (self.symbolic_jterm_constant_table,
          self._read_xml_symbolic_jterm_constant_table),
         (self.string_table, self._read_xml_string_table),
         (self.numerical_table, self._read_xml_numerical_table),
         (self.float_table, self._read_xml_float_table),
         (self.jterm_table, self._read_xml_jterm_table),
         (self.relational_expr_table, self._read_xml_relational_expr_table),
         (self.jterm_list_table, self._read_xml_jterm_list_table),
         (self.relational_expr_list_table,
          self._read_xml_relational_expr_list_table),
         (self.jterm_range_table, self._read_xml_jterm_range_table)
     ]
     self.initialize(xnode)
Exemplo n.º 2
0
 def __init__(self, jclass, xnode):
     self.jclass = jclass  # JavaClass
     self.jd = jclass.jd  # DataDictionary
     self.pc_list_table = IT.IndexedTable('pc-list-table')
     self.slot_table = IT.IndexedTable('slot-table')
     self.slot_list_table = IT.IndexedTable('slot-list-table')
     self.opcode_table = IT.IndexedTable('opcode-table')
     self.tables = [(self.pc_list_table, self._read_xml_pc_list_table),
                    (self.slot_table, self._read_xml_slot_table),
                    (self.slot_list_table, self._read_xml_slot_list_table),
                    (self.opcode_table, self._read_xml_opcode_table)]
     self.initialize(xnode)
    def index_float(self, v):
        tags = [str(v)]

        def f(index, key):
            return JT.JTFloat(self, index, tags, [])

        return self.float_table.add(IT.get_key(tags, []), f)
    def index_numerical(self, v):
        tags = [str(v)]

        def f(index, key):
            return JT.JTNumerical(self, index, tags, [])

        return self.numerical_table.add(IT.get_key(tags, []), f)
Exemplo n.º 5
0
 def __init__(self,jd,xnode):
     self.jd = jd
     self.target_table = IT.IndexedTable('target-table')
     self.tables = [
         (self.target_table, self._read_xml_target_table)
         ]
     self.initialize(xnode)
Exemplo n.º 6
0
 def get_value(node):
     rep = IT.get_rep(node)
     tag = rep[1][0]
     args = (self, ) + rep
     if tag in opcode_constructors:
         return opcode_constructors[tag](args)
     else:
         return BC.BcInstruction(*args)
    def index_arithmetic_jterm(self, jt1, jt2, op):
        tags = ['ar', op]
        args = [jt1.index, jt2.index]

        def f(index, key):
            return JT.JTArithmeticExpr(self, index, tags, args)

        return self.jterm_table.add(IT.get_key(tags, args), f)
    def index_constant_jterm(self, v):
        tags = ['c']
        args = [self.index_numerical(v)]

        def f(index, key):
            return JT.JTConstant(self, index, tags, args)

        return self.jterm_table.add(IT.get_key(tags, args), f)
    def index_float_constant(self, v):
        tags = ['fc']
        args = [self.index_float(float(v))]

        def f(index, key):
            return JT.JTFloatConstant(self, index, tags, args)

        return self.jterm_table.add(IT.get_key(tags, args), f)
Exemplo n.º 10
0
 def __init__(self,jd,xnode):
     self.jd = jd                  # DataDictionary
     self.string_table = IT.IndexedTable('string-table')
     self.symbol_table = IT.IndexedTable('symbol-table')
     self.variable_table = IT.IndexedTable('variable-table')
     self.method_target_table = IT.IndexedTable('method-target-table')
     self.taint_origin_table = IT.IndexedTable('taint-origin-table')
     self.taint_origin_list_table = IT.IndexedTable('taint-origin-list-table')
     self.tainted_variable_table = IT.IndexedTable('tainted-variable-table')
     self.tainted_variable_ids_table = IT.IndexedTable('tainted-variable-ids-table')
     self.taint_node_type_table = IT.IndexedTable('taint-node-type-table')
     self.tables = [
         (self.string_table, self._read_xml_string_table),
         (self.symbol_table, self._read_xml_symbol_table),
         (self.variable_table, self._read_xml_variable_table),
         (self.method_target_table, self._read_xml_method_target_table),
         (self.taint_origin_table, self._read_xml_taint_origin_table),
         (self.taint_origin_list_table, self._read_xml_taint_origin_list_table),
         (self.tainted_variable_table, self._read_xml_tainted_variable_table),
         (self.tainted_variable_ids_table, self._read_xml_tainted_variable_ids_table),
         (self.taint_node_type_table, self._read_xml_taint_node_type_table)
         ]
     self.initialize(xnode)
Exemplo n.º 11
0
 def get_value(node):
     rep = IT.get_rep(node)
     args = (self,) + rep
     return T.TMethodTarget(*args)
Exemplo n.º 12
0
 def get_value(node):
     rep = IT.get_rep(node)
     args = (self,) + rep
     return T.TSymbol(*args)
Exemplo n.º 13
0
 def get_value(node):
     rep = IT.get_rep(node)
     args = (self,) + rep
     return T.TVariable(*args)
Exemplo n.º 14
0
 def get_value(node):
     rep = IT.get_rep(node)
     args = (self,) + rep
     return JT.JTRelationalExprList(*args)
Exemplo n.º 15
0
 def get_value(node):
     rep = IT.get_rep(node)
     args = (self,) + rep
     return T.TStringConstant(*args)
Exemplo n.º 16
0
 def get_value(node):
     rep = IT.get_rep(node)
     tag = rep[1][0]
     args = (self,) + rep
     return taint_node_type_constructors[tag](args)
Exemplo n.º 17
0
 def get_value(node):
     rep = IT.get_rep(node)
     args = (self,) + rep
     return JT.MethodDescriptor(*args)
Exemplo n.º 18
0
 def get_value(node):
     rep = IT.get_rep(node)
     args = (self,) + rep
     return JT.BootstrapMethodData(*args)
Exemplo n.º 19
0
 def __init__(self,jd,xnode):
     self.jd = jd
     self.string_table = IT.IndexedTable('string-table')
     self.class_name_table = IT.IndexedTable('class-name-table')
     self.object_type_table = IT.IndexedTable('object-type-table')
     self.value_type_table = IT.IndexedTable('value-type-table')
     self.method_descriptor_table = IT.IndexedTable('method-descriptor-table')
     self.descriptor_table = IT.IndexedTable('descriptor-table')
     self.field_signature_data_table = IT.IndexedTable('field-signature-data-table')
     self.method_signature_data_table = IT.IndexedTable('method-signature-data-table')
     self.class_field_signature_data_table = IT.IndexedTable('class-field-signature-data-table')
     self.class_method_signature_data_table = IT.IndexedTable('class-method-signature-data-table')
     self.constant_value_table = IT.IndexedTable('constant-value-table')
     self.method_handle_type_table = IT.IndexedTable('method-handle-type-table')
     self.constant_table = IT.IndexedTable('constant-table')
     self.bootstrap_argument_table = IT.IndexedTable('bootstrap-argument-table')
     self.bootstrap_method_data_table = IT.IndexedTable('bootstrap-method-data-table')
     self.tables = [
         (self.string_table, self._read_xml_string_table),
         (self.class_name_table, self._read_xml_class_name_table),
         (self.object_type_table, self._read_xml_object_type_table),
         (self.value_type_table, self._read_xml_value_type_table),
         (self.method_descriptor_table, self._read_xml_method_descriptor_table),
         (self.descriptor_table, self._read_xml_descriptor_table),
         (self.field_signature_data_table, self._read_xml_field_signature_data_table),
         (self.method_signature_data_table, self._read_xml_method_signature_data_table),
         (self.class_field_signature_data_table, self._read_xml_class_field_signature_data_table),
         (self.class_method_signature_data_table, self._read_xml_class_method_signature_data_table),
         (self.constant_value_table, self._read_xml_constant_value_table),
         (self.method_handle_type_table, self._read_xml_method_handle_type_table),
         (self.constant_table, self._read_xml_constant_table),
         (self.bootstrap_argument_table,self._read_xml_bootstrap_argument_table),
         (self.bootstrap_method_data_table, self._read_xml_bootstrap_method_data_table) ]
     self.initialize(xnode)
Exemplo n.º 20
0
 def get_cms_index(self,tags,args):
     key = IT.get_key(tags,args)
     if self.class_method_signature_data_table.has_key(key):
         return self.class_method_signature_data_table.get_index(key)
Exemplo n.º 21
0
 def get_value(node):
     rep = IT.get_rep(node)
     tag = rep[1][0]
     args = (self,) + rep
     return bootstrap_argument_constructors[tag](args)
Exemplo n.º 22
0
 def get_value(node):
     rep = IT.get_rep(node)
     tag = rep[1][0]
     args = (self,) + rep
     return descriptor_constructors[tag](args)
Exemplo n.º 23
0
 def get_value(node):
     rep = IT.get_rep(node)
     args = (self,) + rep
     return ClassMethodSignature(*args)
Exemplo n.º 24
0
 def get_value(node):
     rep = IT.get_rep(node)
     args = (self,) + rep
     return FieldSignature(*args)
Exemplo n.º 25
0
 def get_value(node):
     rep = IT.get_rep(node)
     args = (self,) + rep
     return T.TaintOriginList(*args)
Exemplo n.º 26
0
 def get_value(node):
     rep = IT.get_rep(node)
     args = (self, ) + rep
     return BC.BcSlotList(*args)
Exemplo n.º 27
0
 def get_value(node):
     rep = IT.get_rep(node)
     args = (self,) + rep
     return T.TaintedVariableIds(*args)
Exemplo n.º 28
0
 def get_value(node):
     rep = IT.get_rep(node)
     args = (self,) + rep
     return JT.JTermRange(*args)
Exemplo n.º 29
0
 def get_value(node):
     rep = IT.get_rep(node)
     tag = rep[1][0]
     args = (self,) + rep
     return method_handle_type_constructors[tag](args)
Exemplo n.º 30
0
 def get_value(node):
     rep = IT.get_rep(node)
     args = (self,) + rep
     return Classname(*args)