Advertisement
Guest User

Lex's worst nightmare

a guest
Jun 27th, 2017
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.01 KB | None | 0 0
  1. ClassReader reader = new ClassReader(basicClass);
  2. ClassNode node = new ClassNode();
  3. reader.accept(node, 0);
  4. boolean didAnything = false;
  5. for(MethodNode method : node.methods) if (!method.name.startsWith("<") && (method.access & ACC_ABSTRACT) == 0){
  6.     InsnList list = new InsnList();
  7.     if ((method.access & ACC_STATIC) == 0)
  8.         list.add(new VarInsnNode(ALOAD, 0));
  9.     else
  10.         list.add(new InsnNode(ACONST_NULL));
  11.     list.add(new LdcInsnNode(name + "." + method.name + method.desc));
  12.     list.add(new MethodInsnNode(INVOKESTATIC, ASM_HOOKS, "methodHook",
  13.             "(Ljava/lang/Object;Ljava/lang/String;)V", false));
  14.     method.access |= ACC_PUBLIC;
  15.     method.access &= ~(ACC_PROTECTED | ACC_PRIVATE | ACC_FINAL);
  16.     method.instructions.insertBefore(method.instructions.getFirst(), list);
  17.     didAnything = true;
  18. }
  19. if (didAnything) {
  20.     ClassWriter writer = new ClassWriter(ClassWriter.COMPUTE_MAXS | ClassWriter.COMPUTE_FRAMES);
  21.     node.accept(writer);
  22.     return writer.toByteArray();
  23. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement