gpt4 book ai didi

Java:显示方法调用中使用的所有字符串

转载 作者:太空宇宙 更新时间:2023-11-04 14:31:57 24 4
gpt4 key购买 nike

我正在尝试使用 SOOT 程序分析框架显示方法调用中使用的所有字符串。我可以检查 StringConstant 但如何获取 RefType 的值?这是示例代码:

for (Value va : iv.getInvokeExpr().getArgs()) {
System.out.println("[ARGS : TYPE] " + va.getType() + " with ");

if (va instanceof StringConstant) {
System.out.print(va + " ");
} else if (va instanceof JimpleLocal) {
JimpleLocal jl = (JimpleLocal) va;
if (jl.getType() instanceof RefType) {
RefType rt = (RefType) jl.getType();
SootClass cls = rt.getSootClass();
String clsName = cls.getName();
// recursion possible - backward analysis ?
if(clsName.equals("java.lang.String")){
System.out.print("GOT STRING CLASS - HOW TO GET THE VALUE ?");
}
}
}
}

我是程序分析领域的新手,任何指点都会有很大帮助。

谢谢

最佳答案

StringConstant 有一个 getValue 方法。只需将值转换为该类型即可。对于本地人来说,你的问题没有意义,因为它们是变量,而不是常量。

关于Java:显示方法调用中使用的所有字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26041717/

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