Ejemplo n.º 1
0
public class MethodASM implements IASM, Opcodes {

  private List<MethodSet> target =
      MethodSet.getHookingMethodSet(Configure.getInstance().hook_method);

  public boolean isTarget(String className) {
    if (target.size() == 0) return false;

    for (int i = 0; i < target.size(); i++) {
      MethodSet mset = target.get(i);
      if (mset.classMatch.include(className)) {
        return true;
      }
    }
    return false;
  }

  Configure conf = Configure.getInstance();

  public ClassVisitor transform(ClassVisitor cv, String className, ClassDesc classDesc) {
    if (target.size() == 0) return cv;

    if (conf.isIgnoreMethodClass(className)) return cv;

    for (int i = 0; i < target.size(); i++) {
      MethodSet mset = target.get(i);
      if (mset.classMatch.include(className)) {
        return new MethodCV(cv, mset, className);
      }
    }
    return cv;
  }
}