From e8d6cb9e1ab61357ac26eb93a0a67917ded8a7b5 Mon Sep 17 00:00:00 2001 From: jeff Date: Mon, 2 Mar 2015 01:41:28 -0500 Subject: added simple renamer for local variable table --- .../enigma/bytecode/LocalVariableRenamer.java | 32 ++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/cuchaz/enigma/bytecode/LocalVariableRenamer.java (limited to 'src/cuchaz/enigma/bytecode/LocalVariableRenamer.java') diff --git a/src/cuchaz/enigma/bytecode/LocalVariableRenamer.java b/src/cuchaz/enigma/bytecode/LocalVariableRenamer.java new file mode 100644 index 0000000..53f207c --- /dev/null +++ b/src/cuchaz/enigma/bytecode/LocalVariableRenamer.java @@ -0,0 +1,32 @@ +package cuchaz.enigma.bytecode; + +import javassist.CtBehavior; +import javassist.CtClass; +import javassist.bytecode.ByteArray; +import javassist.bytecode.ConstPool; +import javassist.bytecode.LocalVariableAttribute; + + +public class LocalVariableRenamer { + + public void rename(CtClass c) { + for (CtBehavior behavior : c.getDeclaredBehaviors()) { + + // if there's a local variable table, just rename everything to v1, v2, v3, ... for now + LocalVariableAttribute table = (LocalVariableAttribute)behavior.getMethodInfo().getCodeAttribute().getAttribute(LocalVariableAttribute.tag); + if (table == null) { + continue; + } + + ConstPool constants = c.getClassFile().getConstPool(); + for (int i=0; i