gpt4 book ai didi

java - Asm 字节码查询

转载 作者:行者123 更新时间:2023-11-30 09:49:39 25 4
gpt4 key购买 nike

大家好,我正在尝试使用 ASM 字节码树 Api 对类进行静态分析。我想我有一个非常基本的问题。在 foobar() 方法中,我在 foobar 中有一个指令列表(InsnList 有一个列表)。现在我想检查是否在第 10 条指令处调用了函数“barfoo(String args)”。

另外,我需要验证特定指令是否是条件指令。

感谢和问候,SJ

注意:我已经可以读取一个类并找到我感兴趣的特定方法,并遍历该方法的每个指令。

已解决(参见:Greg 的评论):

    AbstractInsnNode s = ...
if(s.getType()==AbstractInsnNode.METHOD_INSN){
MethodInsnNode methodInvocationNode = (MethodInsnNode) s;
if(methodInvocationNode.name.equals("barfoo"))
{
return true;
}
}

最佳答案

从 ASM javadoc 来看,您似乎必须在指令节点上调用 getType(),如果类型是 METHOD_INSN,那么您可以转换为 MethodInsnNode .从那里,查看 .name 以查看方法名称。

关于java - Asm 字节码查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5689479/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com