使用JEB脚本(2)

来源:互联网 发布:ip地址代理软件 编辑:程序博客网 时间:2024/06/06 20:15

下面是简单的使用Jeb脚本的示例,更多API在JEB目录下的DOC文件夹内

import java.util.List;import javax.swing.text.Element;import jeb.api.*;import jeb.api.ast.*;import jeb.api.dex.*;import jeb.api.ui.*;public class TestJeb implements IScript{private JebInstance jeb = null;private static String DecodeSigName = "Lcom/example/login/LoginActivity;->Encryption(Ljava/lang/String;)Ljava/lang/String;";public void run(JebInstance arg0) {jeb = arg0;JebUI jebui= jeb.getUI();JavaView javaview = (JavaView)jebui.getView(View.Type.JAVA);Dex dex = jeb.getDex();int MethodCount = dex.getMethodCount();//反编译之后的方法for(int i=0;i<MethodCount;i++){//遍历所有的方法DexMethod dexMethod = dex.getMethod(i);//判断是否和我要找的方法名相同if(DecodeSigName.equals(dex.getMethod(i).getSignature(true))){int index = dexMethod.getIndex();//查找交叉引用List<Integer>  MethodReference = dex.getMethodReferences(index);for(Integer refIndex:MethodReference ){//jeb.print(dex.getMethod(refIndex).getSignature(true));//打印引用的方法名Method  DecompiledMethodTree = jeb.getDecompiledMethodTree(dex.getMethod(i).getSignature(true));List<IElement> elements = DecompiledMethodTree.getSubElements();//replaceDecMethod(elements,DecompiledMethodTree);//打印交叉引用的方法jeb.print(jeb.decompileMethod(dex.getMethod(refIndex).getSignature(true)));}}}}}


0 0
原创粉丝点击