检查是否使用ASM调用方法

时间:2013-08-18 22:48:40

标签: java bytecode

我正在为一个被严重混淆的应用程序的deobfuscator工作。为了简化代码,我想删除许多冗余方法。不幸的是,我没有足够的知识与asm和字节码能够做到这一点,有人可以请教我如何使用asm来检查被调用的方法吗?

1 个答案:

答案 0 :(得分:1)

收集类调用的方法列表很简单。如果您使用ASM sax api,则只需覆盖

public void visitMethodInsn(int opcode, String owner, String name, String desc)

收集方法名称,所有者和签名。

如果使用树api,则可以从MethodInsnNodes获得相同的信息。

生成类声明/定义的方法列表同样是直接的 - 每个方法都会调用visitMethod或树api中的方法节点。