Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在为一个被严重混淆的应用程序开发一个反混淆器。为了简化代码,我想删除很多冗余方法。不幸的是,我没有足够的 asm 和字节码知识来做到这一点,有人可以告诉我如何使用 asm 来检查被调用的方法吗?
收集类调用的方法列表很简单。如果您使用的是 ASM sax api,那么只需覆盖
public void visitMethodInsn(int opcode, String owner, String name, String desc)
并收集方法名称、所有者和签名。
如果您使用树 api,则可以从 MethodInsnNodes 获得相同的信息。
生成一个类声明/定义的方法列表同样很简单——每个方法都会导致调用 visitMethod 或树 api 中的方法节点。