问题标签 [soot]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
629 浏览

java - 使用助手类使用 Soot 检测 Android 应用程序

我按照http://www.sable.mcgill.ca/soot/tutorial/profiler2/profiler2.html中的 Java 检测示例使用帮助程序类检测 Android 应用程序。

在我的 BodyTransformer 中,我有一个静态块来加载 MyCounter 类

由于处理我的 args(我在其中提供 -android-jars)的 Soot.Main.main(args) 在加载 MyCounter 时未执行,因此 Soot 找不到我的 android jar 并给出错误:

作为解决方案,在创建 BodyTransformer 之前,我在主类中提供了命令行参数(android jars、soot 类路径、前置类路径和进程目录)。现在,它起作用了。

我想问一下是否有更合适的方法来解决这个问题。

0 投票
2 回答
1213 浏览

android - Android APK或Android源码的控制流分析

我想对需要创建 CFG 的 android 应用程序进行控制和数据流分析。我已经尝试过 soot 来实现它,但我得到的只是 jimple 和其他中级中间语言代码。如何用烟灰制作 CFG,即使我以某种方式得到它,谁能指出我如何以编程方式分析它。

0 投票
1 回答
95 浏览

android - 使用烟灰检测 apk 时出现 regCount 错误

我正在使用 Soot 检测 apk 文件。当我在运行 soot.Main 之前添加以下语句时(甚至没有创建我的 body 转换器),我得到一个 regCount 错误。(对于不同的apk文件,不同的方法会出现同样的错误。)

我得到的错误是:

提前致谢。

0 投票
2 回答
457 浏览

java - Java单例不起作用

我通过 SOOT-ECLIPSE 插件设置一个类作为主类,并希望它像单例一样运行。但是我的实现似乎不起作用,因为每次运行我都会得到不同的实例。

我尝试使用包装器并从那里调用单例类,以避免此类被 soot 的类加载器垃圾收集的情况。但我也有不同的情况。

我确认它在一个 JVM 上运行,因为每次运行时我得到的 PID 与每次运行时更改的类的实例是相同的。

我真的很感激对此的任何见解。

0 投票
2 回答
168 浏览

java - 如何检测一个 throw 语句发生在一个 catch 中?

我试图确定在 catch 块内发生 throw 语句的情况。例如:

是否可以访问每个 catch 块的显式开始/结束范围以迭代其单元以检查是否存在 throw 语句?关于我如何做到这一点的任何想法?

0 投票
1 回答
64 浏览

soot - Java SOOT 框架:SOOT 是否支持匿名线程?

有没有人使用 SOOT 框架来处理匿名线程?我已经尝试过,但 soot 似乎无法识别匿名线程中的函数定义。

0 投票
1 回答
176 浏览

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

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

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

谢谢

0 投票
0 回答
249 浏览

java - 如何使用soot修改一个字节码文件,让我可以打印一些东西?

我有一个 target.java:

我想用soot插入一个命令,这样target.java就可以输出下面这句话“a is = 2”(我不需要和下面一样的代码格式):

有谁知道该怎么做?
我知道一些关于 soot 的事情是我应该先做一个表达式,然后我应该找到 main 方法的最后一个位置,然后我将表达式转换为语句,最后我应该将语句添加到字节码中。

我应该在 newStaticInvokeExpr() 中放入什么?

0 投票
1 回答
848 浏览

soot - 为什么Soot总是说我要加载的类是幻像类,即使它不存在

这个 soot 类加载一个类并打印方法的数量。当我给出要加载的类的正确名称时,它表示该类是幻像。此外,当该类不存在时,它会给出相同的消息。我不知道我做错了什么。

这是我要加载的类。

0 投票
1 回答
727 浏览

eclipse - 在 Eclipse Kepler 上安装 Soot 插件

我尝试使用 Help->Install New Software.. 在 Eclipse Kepler 上安装 Soot 2..5.2 插件,然后使用链接http://www.sable.mcgill.ca/soot/eclipse/updates/但它显示“无法在http://www.sable.mcgill.ca/soot/eclipse/updates/上阅读存储库。如何在 Eclipse Kepler 上安装 soot 插件?