Package jadx.core.dex.nodes

Examples of jadx.core.dex.nodes.ClassNode


        ConstructorInsn co = (ConstructorInsn) insn;
        if (insn.getArgsCount() < 2) {
          continue;
        }
        ClassInfo clsInfo = co.getClassType();
        ClassNode constrCls = cls.dex().resolveClass(clsInfo);
        if (constrCls == null) {
          continue;
        }
        if (!clsInfo.equals(cls.getClassInfo()) && !constrCls.getAccessFlags().isEnum()) {
          continue;
        }
        RegisterArg nameArg = (RegisterArg) insn.getArg(0);
        // InsnArg pos = insn.getArg(1);
        // TODO add check: pos == j
View Full Code Here


      return;
    }
    // remove fields if it is synthetic and type is a outer class
    for (FieldNode field : cls.getFields()) {
      if (field.getAccessFlags().isSynthetic() && field.getType().isObject()) {
        ClassNode fieldsCls = cls.dex().resolveClass(ClassInfo.fromType(field.getType()));
        ClassInfo parentClass = cls.getClassInfo().getParentClass();
        if (fieldsCls != null
            && parentClass.equals(fieldsCls.getClassInfo())) {
          int found = 0;
          for (MethodNode mth : cls.getMethods()) {
            if (removeFieldUsageFromConstructor(mth, field, fieldsCls)) {
              found++;
            }
View Full Code Here

    checkAndHideClass(enumMapField.getParentClass());
    return null;
  }

  private static EnumMapAttr.KeyValueMap getEnumMap(MethodNode mth, FieldNode field) {
    ClassNode syntheticClass = field.getParentClass();
    EnumMapAttr mapAttr = syntheticClass.get(AType.ENUM_MAP);
    if (mapAttr != null) {
      return mapAttr.getMap(field);
    }
    mapAttr = new EnumMapAttr();
    syntheticClass.addAttr(mapAttr);

    MethodNode clsInitMth = syntheticClass.searchMethodByName("<clinit>()V");
    if (clsInitMth == null || clsInitMth.isNoCode()) {
      return null;
    }
    if (clsInitMth.getBasicBlocks() == null) {
      try {
View Full Code Here

    }
    InvokeNode inv = (InvokeNode) invInsn;
    if (!inv.getCallMth().getShortId().equals("ordinal()I")) {
      return null;
    }
    ClassNode enumCls = mth.dex().resolveClass(inv.getCallMth().getDeclClass());
    if (enumCls == null || !enumCls.isEnum()) {
      return null;
    }
    Object index = ((IndexInsnNode) sgetInsn).getIndex();
    if (!(index instanceof FieldInfo)) {
      return null;
View Full Code Here

public class TestN21 extends SmaliTest {

  @Test
  public void test() {
    ClassNode cls = getClassNodeFromSmali("TestN21");
    String code = cls.getCode().toString();
    System.out.println(code);
  }
View Full Code Here

public class TestConstructor extends SmaliTest {

  @Test
  public void test() {
    disableCompilation();
    ClassNode cls = getClassNodeFromSmali("TestConstructor");
    String code = cls.getCode().toString();
    System.out.println(code);

    assertThat(code, containsOne("new SomeObject(arg3);"));
    assertThat(code, not(containsString("= someObject")));
  }
View Full Code Here

    }
  }

  @Test
  public void test() {
    ClassNode cls = getClassNode(TestCls.class);
    String code = cls.getCode().toString();

    assertThat(code, containsString("return (a[0] && a[1] && a[2]) || (a[3] && a[4]);"));
    assertThat(code, containsString("return a[0] || a[1] || a[2] || a[3];"));
  }
View Full Code Here

    }
  }

  @Test
  public void test() {
    ClassNode cls = getClassNode(TestCls.class);
    String code = cls.getCode().toString();

    assertThat(code, containsOne("int n = -1;"));
    assertThat(code, containsOne("while (n < 0) {"));
    assertThat(code, containsOne("n += 12;"));
    assertThat(code, containsOne("while (n > 11) {"));
View Full Code Here

    }
  }

  @Test
  public void test() {
    ClassNode cls = getClassNode(TestCls.class);
    String code = cls.getCode().toString();

    assertThat(code, containsOne("if (!a || (b >= 0 && b <= 11)) {"));
    assertThat(code, containsOne("System.out.println('1');"));
    assertThat(code, containsOne("} else {"));
    assertThat(code, containsOne("System.out.println('2');"));
View Full Code Here

    }
  }

  @Test
  public void test() {
    ClassNode cls = getClassNode(TestCls.class);
    String code = cls.getCode().toString();

    assertThat(code, containsOne("while (this.iterator.hasNext()) {"));
    assertThat(code, containsOne("if (filtered != null) {"));
    assertThat(code, containsOne("return filtered;"));
    assertThat(code, containsOne("return null;"));
View Full Code Here

TOP

Related Classes of jadx.core.dex.nodes.ClassNode

Copyright © 2018 www.massapicom. 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.