Asm字节码查询

| 大家好, 我正在尝试使用ASM字节码树Api对类进行静态分析。 我想我有一个很基本的问题。在一个说foobar()的方法中,我在foobar中有一个指令列表(InsnList有一个列表)。现在,我要检查在指令编号10处是否正在调用函数\“ barfoo(String args)\”。 另外,我需要验证特定指令是否为条件指令。 谢谢并恭祝安康, J 注意:我已经可以阅读一个类,并找到我感兴趣的特定方法,并遍历该方法的每个指令。 解决了(请参阅:格雷格的评论):
    AbstractInsnNode s = ...
    if(s.getType()==AbstractInsnNode.METHOD_INSN){
        MethodInsnNode methodInvocationNode = (MethodInsnNode) s;
        if(methodInvocationNode.name.equals(\"barfoo\"))
        {
            return true;
        }
    }
    
已邀请:
通过查看ASM Javadoc,您似乎必须在指令节点上调用
getType()
,如果类型为
METHOD_INSN
,则可以转换为cast3ѭ。从那里,查看
.name
以查看方法名称。     
简单-确定调用了ѭ5后,就开始在您访问的每条指令上增加一个计数器。在第十次调用时,对
barfoo
的调用进行检查。     

要回复问题请先登录注册