Examples of InstructionSearcher


Examples of smart.updater.InstructionSearcher

            MethodGen gen = new MethodGen(m, c.getValue().getClassName(), cpg);
              InstructionList il = gen.getInstructionList();
              if (il == null) {
                 continue;
              }
              InstructionSearcher iS = new InstructionSearcher(il, cpg);
            MethodSearcher mS = new MethodSearcher(m, cg, cpg);
            RSField menuOpCount = data.getProperField("MenuOptionCount");
            if (m.isStatic() && m.isFinal() && m.getReturnType().equals(Type.VOID) && mS.getArgCount() == 11 &&
                mS.getTypeCount("int")>= 3 && mS.hasField(menuOpCount.path)) {
                if(iS.nextFieldInstructionOf(menuOpCount.path)!=null){
                  FieldInstruction i = null;
                  i = (FieldInstruction)iS.prevGETSTATIC();
                  data.addField("MenuOpen", i.getClassName(cpg)+'.'+i.getFieldName(cpg));
                  iS.nextGETSTATIC();
                }
                if(iS.nextFieldInstructionOf(menuOpCount.path) != null){
                  FieldInstruction i = null;
                  i = (FieldInstruction)iS.prevGETSTATIC();
                  data.addField("MenuNodeList", i.getClassName(cpg)+'.'+i.getFieldName(cpg));
                  return SearchResult.Success;
                }
            }
          }
View Full Code Here

Examples of smart.updater.InstructionSearcher

            InstructionFinder f = new InstructionFinder(il);
            Iterator e = f.search("INVOKEVIRTUAL CHECKCAST GETFIELD ASTORE ALOAD GETFIELD IFEQ");
            if(e.hasNext()){
              InstructionHandle[] handles = (InstructionHandle[]) e.next();
              String getHits = ((GETFIELD) handles[5].getInstruction()).getFieldName(cpg);
              InstructionSearcher iS = new InstructionSearcher(il, cpg);
              iS.nextGETSTATIC();
              iS.nextGETSTATIC();
              String npcIndexArray = ((GETSTATIC)iS.current()).getClassName(cpg)+'.'+((GETSTATIC)iS.current()).getFieldName(cpg);
              data.addField("NPCIndexArray", npcIndexArray);
              RSClass character = data.getProperClass("Character");
              character.addField("GetHitDamges", getHits);
              return SearchResult.Success;
            }
View Full Code Here

Examples of smart.updater.InstructionSearcher

          if(m.getName().equals("<init>") && mS.getArgCount() == 10 &&
              mS.getTypeCount("int") == 5 && mS.getTypeCount("java.lang.String")==2){
            MethodGen mg = new MethodGen(m, cg.getClassName(), cpg);
            RSClass menu = data.addClass("Menu", c.getValue().getClassName());
            int found = 0;
            InstructionSearcher iS = new InstructionSearcher(mg.getInstructionList(), cpg);
            Instruction i;
            FieldInstruction option;
            FieldInstruction action;
            while(iS.next() != null){
              i = iS.current();
              if(i instanceof ALOAD){
                if(((ALOAD)i).getIndex() == 2){
                  option = iS.nextFieldInstruction();
                  menu.addField("Option", option.getFieldName(cpg));
                  found++;
                  if(found==2)
                    return SearchResult.Success;
                }
                if(((ALOAD)i).getIndex() == 1){
                  option = iS.nextFieldInstruction();
                  menu.addField("Action", option.getFieldName(cpg));
                  found++;
                  if(found==2)
                    return SearchResult.Success;
                }
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.