问题标签 [dynamic-analysis]

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 回答
287 浏览

linux - bpftrace:uprobe 目标文件不存在或不可执行

我想使用 bpftrace 来跟踪 libasan 库中的函数,该库位于 /usr/lib/x86_64-linux-gnu/ 中。

然而

sudo bpftrace -e 'uretprobe:/usr/lib/x86_64-linux-gnu/libasan.so.4: __interceptor_malloc { printf("pid: %d, malloc %p\n", pid, retval); }'

给出错误:uprobe target file '/usr/lib/x86_64-linux-gnu/libasan.so.4' does not exist or is not executable

我试过了:export LD_LIBRARY_PATH="/lib:/usr/lib:/usr/local/lib"但它没有帮助。

如何使库可执行 bpftrace?我需要它来跟踪在 Firefox 进程中完成的分配。谢谢!

编辑:我刚刚发现对 libasan 的权限是 -rw-r--r--,这意味着它确实是不可执行的。我应该如何使它可执行?

0 投票
1 回答
47 浏览

python - 当十字准线命令成功时,我的合同是否被证明是正确的?

crosshair没有找到反例时,它是否使用Z3求解器来证明我的合同成立?

文档表明没有反例并不能保证该属性成立,但这仅仅是因为翻译或建模可能不正确吗?

免责声明:我是 CrossHair 的主要贡献者(我只是使用堆栈溢出作为一种公共方式来记录我以前被问过的问题的答案)

0 投票
1 回答
294 浏览

java - GraalVM 上运行的 JVM 字节码是否可以通过自定义的“TruffleInstrument”进行检测?

我想编写一个 Truffle 工具,当 Java 程序(或至少 JVM 字节码程序)在 GraalVM 上运行时,它可以检测它们。

我一直在研究不同的方法来执行 Java 程序的细粒度检测以支持运行时验证项目。对我来说,操作 Truffle AST 节点听起来比我熟悉的更传统的 Java 插桩技术(例如字节码重写、JVMTI)更有吸引力。

不幸的是,我开始担心制作 Truffle 工具甚至“看到”JVM 字节码是不可能的。从我对 GraalVM 启动器的实验(例如polyglotjava)、对 Truffle API 的实验(例如 org.graalvm.polyglot.Context)以及浏览一些 Graal 编译器源代码来看,似乎:

  • Truffle 工具只能“看到”可由 Truffle 语言(例如jsllvm)解释的代码。
  • GraalVM 发行版不支持通过 Truffle 语言实现的 JVM 字节码。(相反,它通过传统的 HotSpot 解释器和 Graal JVMCI 编译器支持 JVM 字节码,这与 Truffle 无关。)

我创建了一个 GitHub 存储库,dwtj/ex_graalvm_with_custom_truffle 它展示了一些让我相信这一点的实验。特别是,脚本 10 和 11 似乎都表明从 JavaScript 调用的 Java 被GraalVM 的simpletool.

现在,也许这对于一般的松露乐器来说不是问题。也许这只是这种特殊 Truffle 乐器的限制。是否有某种方法simpletool可以增强 Truffle 工具,以使用标准 Truffle API 支持 JVM 字节码工具?

我真的很想使用 GraalVM 的 Truffle API 来检测 JVM 字节码。所以请告诉我我错了。

0 投票
1 回答
218 浏览

dynamic - 静态分析和动态分析有什么区别?


在网络安全方面,静态分析和动态分析有什么区别?

0 投票
0 回答
40 浏览

logging - Kibana 报告的设计可以类似于 Sentry 错误日志吗?

Kibana 中的报告功能能否用于设计与 Sentry 向开发人员提供报告的方式类似的报告?我确实认为需要采取更多措施。例如,需要在发送到 Kibana 的日志文件中添加完整的堆栈跟踪。

提出这个问题的主要原因是,当 Kibana 已经存在并且功能齐全时,避免让 Sentry 和 Kibana 处于同一技术领域。

0 投票
0 回答
33 浏览

java - 如何使用javaagent获取java的执行数据

我正在做一些关于从 java 程序中获取执行日志的事情。但是当它是一个 jar 文件时,我只是使用java -javaagent:agent1.jar -jar MyProgram.jar . 但是如果有一个不需要使用java -jar打开的软件,我如何使用myagent1.jar来获取它的执行数据呢?比如我用java做了一个游戏,我通过打开文件来打开它MyGame.exe,这意味着我不能javaagent:agent.jar用来检测和获取日志。

有没有什么办法可以解决这个问题或者有其他工具可以给我参考一下吗?</p>

0 投票
0 回答
59 浏览

android - 使用模拟器监控 Android 应用程序发送的短信

我有一个 Android 恶意软件 APK,它正在发送 SMS 消息并随后将其删除,因此它们在 Messages 应用程序中不可见。应用程序的代码被混淆了,所以我无法阅读代码。

我想找出应用程序在模拟器中运行时发送的 SMS 消息的内容和收件人。

有没有办法监控应用程序发出的短信,就像我们使用监控工具监控互联网流量一样?

更新:恶意软件寻求成为默认 SMS 应用程序的许可。如果没有被授予权限,它就会终止。

0 投票
1 回答
10 浏览

invariants - Daikon 无法运行:“文件 example.dtrace 中的第 1 行出错:没有为程序点 program.point:::POINT 提供声明”

我正在尝试在使用开源 perl 脚本从 CSV 文件生成的 .decls 和 .dtrace 文件上运行 Daikon。下面将提供 .decls 和 .dtrace 文件。daikon.jar 文件保存在一个目录中,该目录有一个子目录“scripts”,我在其中保存 .dtrace 和 .decls。

我正在尝试使用以下命令从包含 daikon.jar 文件的目录中调用 daikon:

java -cp daikon.jar daikon.Daikon 脚本/example.dtrace 脚本/example.decls

程序响应如下:

我很困惑为什么它找不到我提供的包含 program.point 函数声明的声明文件。下面我提供了 example.dtrace 和 example.decls 文件的内容。


例子.dtrace


例子.decls

0 投票
1 回答
55 浏览

c++ - 为什么 LLVM 的泄漏消毒剂在与其他启用的消毒剂一起使用时不起作用

我试图从一个简单的程序中找到内存泄漏:

使用以下命令: clang -g -O0 -Wall -Wextra -std=gnu99 -fsanitize=address,leak -o 3-bracket-parser 3-bracket-parser.c

很明显,在这个程序中,如果close_bracket == NULL为真,那么程序返回时没有空闲的mutable_copy,所以存在内存泄漏。

但是,当我运行此命令时,它不会报告任何错误,并且我的消毒剂也没有输出。我只启用了泄漏消毒剂再次尝试,这次它起作用了:

我想知道为什么在启用其他消毒剂时泄漏消毒剂不起作用。

我的 clang 版本是 Homebrew clang 版本 12.0.1,我的操作系统是 macOS Big Sur 11.5.2