我正在为一个被严重混淆的应用程序的deobfuscator工作。为了简化代码,我想删除许多冗余方法。不幸的是,我没有足够的知识与asm和字节码能够做到这一点,有人可以请教我如何使用asm来检查被调用的方法吗?
答案 0 :(得分:1)
收集类调用的方法列表很简单。如果您使用ASM sax api,则只需覆盖
public void visitMethodInsn(int opcode, String owner, String name, String desc)
收集方法名称,所有者和签名。
如果使用树api,则可以从MethodInsnNodes获得相同的信息。
生成类声明/定义的方法列表同样是直接的 - 每个方法都会调用visitMethod或树api中的方法节点。