Examples of BehaviorEntry


Examples of cuchaz.enigma.mapping.BehaviorEntry

          String innerClassName = c.getSimpleName();
          m_innerClasses.put( outerClassName, innerClassName );
          boolean innerWasAdded = m_outerClasses.put( innerClassName, outerClassName ) == null;
          assert( innerWasAdded );
         
          BehaviorEntry enclosingBehavior = isAnonymousClass( c, outerClassName );
          if( enclosingBehavior != null )
          {
            m_anonymousClasses.put( innerClassName, enclosingBehavior );
           
            // DEBUG
View Full Code Here

Examples of cuchaz.enigma.mapping.BehaviorEntry

  }

  private void indexBehavior( CtBehavior behavior )
  {
    // get the behavior entry
    final BehaviorEntry behaviorEntry = BehaviorEntryFactory.create( behavior );
    if( behaviorEntry instanceof MethodEntry )
    {
      MethodEntry methodEntry = (MethodEntry)behaviorEntry;
     
      // index implementation
      m_methodImplementations.put( behaviorEntry.getClassName(), methodEntry );
     
      // look for bridge methods
      CtMethod bridgedMethod = getBridgedMethod( (CtMethod)behavior );
      if( bridgedMethod != null )
      {
        MethodEntry bridgedMethodEntry = new MethodEntry(
          behaviorEntry.getClassEntry(),
          bridgedMethod.getName(),
          bridgedMethod.getSignature()
        );
        m_bridgeMethods.put( bridgedMethodEntry, methodEntry );
      }
View Full Code Here

Examples of cuchaz.enigma.mapping.BehaviorEntry

  }
 
  private void indexBehaviorReferences( CtBehavior behavior )
  {
    // index method calls
    final BehaviorEntry behaviorEntry = BehaviorEntryFactory.create( behavior );
    try
    {
      behavior.instrument( new ExprEditor( )
      {
        @Override
View Full Code Here

Examples of cuchaz.enigma.mapping.BehaviorEntry

    {
      return null;
    }
   
    // does the caller use this type?
    BehaviorEntry caller = references.iterator().next().context;
    for( FieldEntry fieldEntry : getReferencedFields( caller ) )
    {
      ClassEntry fieldClass = getFieldClass( fieldEntry );
      if( fieldClass != null && fieldClass.equals( innerClassEntry ) )
      {
View Full Code Here

Examples of cuchaz.enigma.mapping.BehaviorEntry

      switch( constants.getTag( i ) )
      {
        case ConstPool.CONST_Methodref:
        case ConstPool.CONST_InterfaceMethodref:
        {
          BehaviorEntry behaviorEntry = BehaviorEntryFactory.create(
            Descriptor.toJvmName( editor.getMemberrefClassname( i ) ),
            editor.getMemberrefName( i ),
            editor.getMemberrefType( i )
          );
         
View Full Code Here

Examples of cuchaz.enigma.mapping.BehaviorEntry

    return rootNode;
  }
 
  public BehaviorReferenceTreeNode getMethodReferences( BehaviorEntry deobfBehaviorEntry )
  {
    BehaviorEntry obfBehaviorEntry = m_deobfuscator.obfuscateEntry( deobfBehaviorEntry );
    BehaviorReferenceTreeNode rootNode = new BehaviorReferenceTreeNode(
      m_deobfuscator.getTranslator( TranslationDirection.Deobfuscating ),
      obfBehaviorEntry
    );
    rootNode.load( m_deobfuscator.getJarIndex(), true );
View Full Code Here

Examples of cuchaz.enigma.mapping.BehaviorEntry

    {
      // this is an inner class, rename it to outer$inner
      ClassEntry obfClassEntry = new ClassEntry( obfOuterClassName + "$" + obfInnerClassName );
      c.setName( obfClassEntry.getName() );
     
      BehaviorEntry caller = m_jarIndex.getAnonymousClassCaller( obfInnerClassName );
      if( caller != null )
      {
        // write the enclosing method attribute
        if( caller.getName().equals( "<clinit>" ) )
        {
          c.getClassFile().addAttribute( new EnclosingMethodAttribute(
            c.getClassFile().getConstPool(),
            caller.getClassName()
          ) );
        }
        else
        {
          c.getClassFile().addAttribute( new EnclosingMethodAttribute(
            c.getClassFile().getConstPool(),
            caller.getClassName(),
            caller.getName(),
            caller.getSignature()
          ) );
        }
      }
    }
   
View Full Code Here

Examples of cuchaz.enigma.mapping.BehaviorEntry

      {
        continue;
      }
     
      // get the behavior entry
      BehaviorEntry behaviorEntry;
      if( behavior instanceof CtMethod )
      {
        behaviorEntry = new MethodEntry( classEntry, behavior.getMethodInfo().getName(), behavior.getSignature() );
      }
      else if( behavior instanceof CtConstructor )
View Full Code Here

Examples of cuchaz.enigma.mapping.BehaviorEntry

       
        case ConstPool.CONST_Methodref:
        case ConstPool.CONST_InterfaceMethodref:
        {
          // translate the name and type
          BehaviorEntry entry = BehaviorEntryFactory.create(
            Descriptor.toJvmName( editor.getMemberrefClassname( i ) ),
            editor.getMemberrefName( i ),
            editor.getMemberrefType( i )
          );
          BehaviorEntry translatedEntry = m_translator.translateEntry( entry );
         
          if( !entry.getName().equals( translatedEntry.getName() ) || !entry.getSignature().equals( translatedEntry.getSignature() ) )
          {
            editor.changeMemberrefNameAndType( i, translatedEntry.getName(), translatedEntry.getSignature() );
          }
        }
        break;
      }
    }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.