Examples of MethodEntry


Examples of cuchaz.enigma.mapping.MethodEntry

    return rootNode;
  }
 
  public MethodImplementationsTreeNode getMethodImplementations( Translator deobfuscatingTranslator, MethodEntry obfMethodEntry )
  {
    MethodEntry interfaceMethodEntry;
   
    // is this method on an interface?
    if( isInterface( obfMethodEntry.getClassName() ) )
    {
      interfaceMethodEntry = obfMethodEntry;
    }
    else
    {
      // get the interface class
      List<MethodEntry> methodInterfaces = Lists.newArrayList();
      for( String interfaceName : getInterfaces( obfMethodEntry.getClassName() ) )
      {
        // is this method defined in this interface?
        MethodEntry methodInterface = new MethodEntry(
          new ClassEntry( interfaceName ),
          obfMethodEntry.getName(),
          obfMethodEntry.getSignature()
        );
        if( containsObfBehavior( methodInterface ) )
View Full Code Here

Examples of cuchaz.enigma.mapping.MethodEntry

    return methodEntries;
  }
 
  private void getRelatedMethodImplementations( Set<MethodEntry> methodEntries, MethodInheritanceTreeNode node )
  {
    MethodEntry methodEntry = node.getMethodEntry();
    if( containsObfBehavior( methodEntry ) )
    {
      // collect the entry
      methodEntries.add( methodEntry );
    }
View Full Code Here

Examples of cuchaz.enigma.mapping.MethodEntry

    }
  }
 
  private void getRelatedMethodImplementations( Set<MethodEntry> methodEntries, MethodImplementationsTreeNode node )
  {
    MethodEntry methodEntry = node.getMethodEntry();
    if( containsObfBehavior( methodEntry ) )
    {
      // collect the entry
      methodEntries.add( methodEntry );
    }
View Full Code Here

Examples of cuchaz.enigma.mapping.MethodEntry

  {
    // get all method implementations
    List<MethodImplementationsTreeNode> nodes = Lists.newArrayList();
    for( String implementingClassName : index.getImplementingClasses( m_entry.getClassName() ) )
    {
      MethodEntry methodEntry = new MethodEntry(
        new ClassEntry( implementingClassName ),
        m_entry.getName(),
        m_entry.getSignature()
      );
      if( index.containsObfBehavior( methodEntry ) )
View Full Code Here

Examples of cuchaz.enigma.mapping.MethodEntry

  {
    // rename declared methods
    for( CtMethod method : c.getDeclaredMethods() )
    {
      // get the method entry
      MethodEntry methodEntry = new MethodEntry(
        new ClassEntry( Descriptor.toJvmName( c.getName() ) ),
        method.getName(),
        method.getSignature()
      );
      MethodEntry bridgeMethodEntry = m_index.getBridgeMethod( methodEntry );
      if( bridgeMethodEntry != null )
      {
        // fix this bridged method
        method.setName( bridgeMethodEntry.getName() );
      }
    }
   
    // rename method references
    // translate all the field and method references in the code by editing the constant pool
    ConstPool constants = c.getClassFile().getConstPool();
    ConstPoolEditor editor = new ConstPoolEditor( constants );
    for( int i=1; i<constants.getSize(); i++ )
    {
      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 )
          );
         
          if( behaviorEntry instanceof MethodEntry )
          {
            MethodEntry methodEntry = (MethodEntry)behaviorEntry;
           
            // translate the name and type
            MethodEntry bridgeMethodEntry = m_index.getBridgeMethod( methodEntry );
            if( bridgeMethodEntry != null )
            {
              // FIXIT FIXIT FIXIT FIXIT FIXIT FIXIT FIXIT
              editor.changeMemberrefNameAndType( i, bridgeMethodEntry.getName(), bridgeMethodEntry.getSignature() );
            }
          }
        }
        break;
      }
View Full Code Here

Examples of cuchaz.enigma.mapping.MethodEntry

    );
  }
 
  public MethodInheritanceTreeNode getMethodInheritance( MethodEntry deobfMethodEntry )
  {
    MethodEntry obfMethodEntry = m_deobfuscator.obfuscateEntry( deobfMethodEntry );
    MethodInheritanceTreeNode rootNode = m_deobfuscator.getJarIndex().getMethodInheritance(
      m_deobfuscator.getTranslator( TranslationDirection.Deobfuscating ),
      obfMethodEntry
    );
    return MethodInheritanceTreeNode.findNode( rootNode, obfMethodEntry );
View Full Code Here

Examples of cuchaz.enigma.mapping.MethodEntry

    return MethodInheritanceTreeNode.findNode( rootNode, obfMethodEntry );
  }
 
  public MethodImplementationsTreeNode getMethodImplementations( MethodEntry deobfMethodEntry )
  {
    MethodEntry obfMethodEntry = m_deobfuscator.obfuscateEntry( deobfMethodEntry );
    MethodImplementationsTreeNode rootNode = m_deobfuscator.getJarIndex().getMethodImplementations(
      m_deobfuscator.getTranslator( TranslationDirection.Deobfuscating ),
      obfMethodEntry
    );
    if( rootNode == null )
View Full Code Here

Examples of cuchaz.enigma.mapping.MethodEntry

  {
    // get all the child nodes
    List<MethodInheritanceTreeNode> nodes = Lists.newArrayList();
    for( String subclassName : index.getTranslationIndex().getSubclassNames( m_entry.getClassName() ) )
    {
      MethodEntry methodEntry = new MethodEntry(
        new ClassEntry( subclassName ),
        m_entry.getName(),
        m_entry.getSignature()
      );
      nodes.add( new MethodInheritanceTreeNode(
View Full Code Here

Examples of cuchaz.enigma.mapping.MethodEntry

  @SuppressWarnings( "unchecked" )
  public static <T> T renameMethodsInThing( Map<MethodEntry,MethodEntry> renames, T thing )
  {
    if( thing instanceof MethodEntry )
    {
      MethodEntry methodEntry = (MethodEntry)thing;
      MethodEntry newMethodEntry = renames.get( methodEntry );
      if( newMethodEntry != null )
      {
        return (T)new MethodEntry(
          methodEntry.getClassEntry(),
          newMethodEntry.getName(),
          methodEntry.getSignature()
        );
      }
      return thing;
    }
View Full Code Here

Examples of cuchaz.enigma.mapping.MethodEntry

        constructorEntry.getSignature()
      );
    }
    else if( thing instanceof MethodEntry )
    {
      MethodEntry methodEntry = (MethodEntry)thing;
      return (T)new MethodEntry(
        renameClassesInThing( renames, methodEntry.getClassEntry() ),
        methodEntry.getName(),
        methodEntry.getSignature()
      );
    }
    else if( thing instanceof ArgumentEntry )
    {
      ArgumentEntry argumentEntry = (ArgumentEntry)thing;
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.