大家好,我正在尝试使用 ASM 字节码 Tree Api 对类进行静态分析。我想我有一个非常基本的问题。在一个说 foobar() 的方法中,我在 foobar 中有一个指令列表(InsnList 有一个列表)。现在我想检查是否在第 10 条指令处,是否调用了函数“barfoo(String args)”。
另外,我需要验证特定指令是否是条件指令。
谢谢和问候, SJ
注意:我已经可以阅读一个类并找到我感兴趣的特定方法并遍历该方法的每个指令。
解决(见:格雷格的评论):
AbstractInsnNode s = ...
if(s.getType()==AbstractInsnNode.METHOD_INSN){
MethodInsnNode methodInvocationNode = (MethodInsnNode) s;
if(methodInvocationNode.name.equals("barfoo"))
{
return true;
}
}