问题标签 [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.
profiling - 收集动态指令执行计数的最简单方法?
我想要一种简单而快速的方法来收集LLVM 位码中的每条指令在应用程序的给定运行中执行的次数。据我所知,我可以采取多种方法:
使用密码。这需要使用 DWARF 调试信息和指令调试信息来尝试将二进制中的指令映射到位码中的指令;不是 100% 确定这将是多么准确。
使用 llvm-prof。这里有两个问题。首先,我在Stack Overflow上看到了
opt
调用--insert-edge-profiling
. 但是,该选项似乎在 3.6 中不可用?其次,这种分析似乎只记录功能级别的执行计数,而不是单个指令级别的执行计数。那是对的吗?编写一个类似于AddressSanitizer的新工具。这可能有效,但似乎有点矫枉过正。
有没有更简单的方法来实现我所缺少的目标?
android - get detailed process information in Android
I'm going to write an app to do dynamic analysis of processes. In order to achieve this I want to have detailed statistics about process running on my phone.
Note: I have rooted phone so some limits are removed.
So here is my question, how can I collect process information in detail dynamically? I know results of top
,ps
commands can help me, however I don't know how to call them or do I have access these commands on a rooted phone?
As I searched around the web ActivityManager.RunningAppProcessInfo
is no longer useful since It provide limited information since Lolipop.
android - Android:将正在运行的应用程序与 android 中的其他进程区分开来
我确实ps
在手机上的 shell 中运行了命令。问题是如何区分与我作为普通手机用户执行的应用程序相关的进程,例如 Google Play、Adobe Reader 等?
正如我注意到的那样,一些进程是由用户名以格式运行app_xxx
并作为进程的子进程zygote
子进程运行的,但是其中有很多包括后台服务和系统服务。有没有什么方法可以制作一个短名单,就像我按下应用程序列表按钮时我的手机显示的列表一样(目前它在正在运行的应用程序列表中只显示 6 个带有缩略图的应用程序)?
这是ps
adb shell 的输出:
windows - Windows 等效于 System.map?
我正在 QEMU 中对 Windows VM 执行动态分析。我想查看基于 EIP 的来宾操作系统中当前正在执行的功能(我只是想了解操作系统在做什么)。
是否有相当于 Windows 的 System.map?在 Linux 中执行类似任务时,这就是我通常会使用的。
我知道 Windows 符号包,但我试图弄清楚如何在不使用两个 Windows VM 的情况下做到这一点,因为我不需要完整的调试信息,只需要函数地址。
我目前使用的是 Windows 7
web-applications - Web 应用程序的动态输入生成器
我将使用动态分析来分析 Web 应用程序。现在我需要一个可以生成输入的输入生成器。
是否有任何开源工具可以实现这一目标?
我读过很多论文,比如 Apollo,但似乎他们没有发布他们的工具。
谢谢
intel-pin - 在回调函数内的任意位置恢复执行
我正在使用Pin
动态分析。
在我对 64 位 x86 二进制代码的动态分析任务中,我想在修复信号处理回调中的某些内存访问错误后,在任意程序位置(例如,当前执行函数的第二条指令)恢复执行。
它会是这样的:
但是,我得到了这个异常:E: PIN_ExecuteAt() 不能从回调中调用。
我知道我可以通过在信号处理函数结束时返回 false来恢复“当前指令”的执行,但基本上我可以在任意位置恢复吗?
我清楚了吗?感谢您的帮助!
android - 在 Android 模拟器上将文件写入内部存储
我构建了一个将文件写入手机内部存储的应用程序。我已经在我的实际 Android 手机上进行了测试,它确实有效。我还在运行 API 16 Google Nexus 4 的 Android Studio 模拟器上对其进行了测试。现在我正在尝试对我的应用程序运行像 Droidbox 这样的动态分析工具,但奇怪的是每次我在带有 Droidbox 的模拟器中运行应用程序时,它都没有根本不创建任何文件。它适用于我的手机和 Android Studio,但它对 Droidbox 模拟器没有任何作用(它使用 /android-sdk-linux/tools/ 文件夹中的模拟器。)我肯定包含了权限并设置了正确的 Android 版本。为什么我无法在 Droidbox 下创建文件?
static-analysis - 如何在动态报告中找到静态分析报告的等效API?
我有两份静态和动态恶意软件分析报告,在我的静态报告中确实有一些 MSVCRT 的 dll 的 API(例如 _p_commode,_setusermatherr ,...)在动态报告中没有。我不知道动态报告中是否有等效的 API?为什么他们不在动态报告中?
java - Java的动态依赖检查工具
我正在寻找一种工具来分析和优化我的 Gradle 项目中的依赖层次结构。我已经看过https://github.com/wfhartford/gradle-dependency-analyze和来自 Netflix 的https://github.com/nebula-plugins/gradle-lint-plugin。两者都基于已编译类的静态分析来完成这项工作。尽管如此,使用静态代码分析工具无法找到基于反射的任何内容,因此注入框架将失败,并且分析将产生静态代码未使用而运行代码将使用的依赖项的结果。
那么有没有可以使用的工具呢?我正在考虑一些代码覆盖工具基于运行单元测试所做的事情。任何想法都非常受欢迎!
x86 - Pin:检测指定的共享库
我正在对可执行文件及其相关共享库执行一些简单的检测任务,将所有执行的指令记录在主文件以及共享库中。
但是,Pin
总是抛出
仪器仪表期间。由于我在 32 位系统上工作,每次达到 3G 左右的内存消耗时,检测过程都会崩溃。
我想在这个 32 位系统上工作,因为这个平台上有很多共享库。另一方面,因为实际上我只对一个共享库感兴趣,所以我正在考虑找到一种方法,只在主可执行文件和那个特殊库中记录执行的指令。
但是,我不知道是否/如何做到这一点。现在在仪器之前,我的设置是:
如您所见,我没有检查是否正在检测主可执行文件,这意味着我应该能够检测所有库。
我的测试平台是 32 位 x86 Ubuntu 14.04。并且测试目标是 32 位 ELF 二进制代码。
所以我的问题是:鉴于我的情况,我是否应该配置为仅检测我感兴趣的库以克服内存异常?如果是这样,我该怎么做?