问题标签 [angr]

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

python-3.x - 加载elfcore后端后如何使用angr运行程序?

我正在尝试使用 angr 二进制分析库 ( http://angr.io/ ) 编写 python 脚本。我编写的代码通过使用 ElfCore 后端( http://angr.io/api-doc/cle.html#cle.backends.elf.elfcore.ELFCore)成功加载了我想玩的进程的核心转储) 传递给项目构造函数,执行如下操作:

我想知道的是,我现在如何从核心转储定义的状态(寄存器和内存)向前“运行”程序?例如,当我尝试SimState使用上述项目创建一个时:

我回来说 rip 未初始化(它肯定是在核心转储中/在生成核心转储时初始化的)。

提前感谢您的帮助!

0 投票
1 回答
372 浏览

python-3.x - 如何在 angr 模拟状态下分配(malloc)内存?

我成功地弄清楚了如何使用 angr 运行程序,从核心转储定义的状态开始(请参阅How to run program using angr after loading with the elfcore backend?)但现在我想知道这一点:

如何在程序的 SimulationState 中分配内存?

我运行程序的起始状态是一个函数的开始,它接受一个指针和一个长度。我希望能够以任意长度重新分配内存,并将这个指针(和适当的长度)传递给函数。

我发现有一个我认为是一个插件类angr.state_plugins.heap.heap_libc.SimHeapLibc文档),它有一个malloc方法,但是我如何使用这个插件,它实际上是我需要的吗?

0 投票
0 回答
149 浏览

python - 如何创建 Python 脚本的二进制文件

我正在尝试使用angr,一个用于 Python 的二进制分析工具包。我意识到我需要一个二进制文件才能加载项目并开始处理它。

如何将 python 脚本或 c++ 程序转换为二进制文件?有没有办法做到这一点?

注意:我相信二进制文件与 .exe 文件不同,因为我已经尝试过创建 .exe 文件的pycompile 。

0 投票
1 回答
143 浏览

java-native-interface - 如何使用Angr分析共享库中的JNI函数?

我是二进制分析领域的新手。我想做的是分析 JNI 本机接口函数(例如,使用 Angr 提供的SimProcedures在这里RegisterNatives列出的其他函数。共享库(*.so 文件)假设是 Android 应用程序的一部分。但是,我注意到这些 JNI 本机接口函数不会在共享库中显示为符号。所以我的问题是:

  1. 为什么这些 JNI 原生接口函数在共享库中没有对应的符号?我做错了什么还是他们认为是这样的?
  2. Angr中,如果我没有遗漏任何内容,SimProcedures 只能绑定到符号。那么如果没有这样的符号,我应该怎么做才能让它工作呢?
0 投票
1 回答
217 浏览

firmware - 使用 angr 分析固件文件

我想使用angr来分析 IoT 固件文件。我已经阅读了angr的文档,但是我找不到分析固件文件的解决方案。那么angr如何生成Firmware的CFG文件呢?或者我如何用angr作为符号执行来分析固件文件?

0 投票
0 回答
628 浏览

symbolic-execution - 如何在 angr 中使用“stdin”

我是angr的新手,试图解决一个简单的可执行文件,它读取 3 个字符并与字符串“abc”进行比较。

angr脚本

当我没有明确地为bland_state. 但是当提供“stdin”时它显示“未找到”。

  • 问题 1:示例中的语法,但我的代码有什么问题?我尝试了 3 个和 4 个字节(1 个用于 '\n'),它们都不起作用。

  • 问题 2:另一个示例的语法,为什么它在示例中有效,但在我的代码中无效?

0 投票
1 回答
544 浏览

python - 如何在 Angr 程序的开头添加字符串输入?

抱歉这个可能很愚蠢的问题。我是 Angr 的新手,遇到了一个小问题/问题。所以,假设我有一个二进制程序“mybinary”,我在其中输入一些内容,它会执行一些操作并检查它以找到一个标志。(正常的crackme风格。)

但是,程序第一次运行时需要一个字符串 tid 输入。我有 tid,它只是一个 32 位的字母和数字字符串。

因此,要运行它,而不是“./mybinary”,我必须执行“./mybinary 'tid string'”。

在将文件加载到 Angr 项目的上下文中,我该怎么做?

就像,如果我的 angr 代码类似于:

我如何编辑它以使其运行“./mybinary 'tid string'” 而不仅仅是“./mybinary”?

请并感谢您的帮助!

0 投票
0 回答
230 浏览

reverse-engineering - 整个二进制文件的控制流程图

是否可以使用任何反汇编程序获取整个二进制文件的控制流程图?IDA Pro 为每个函数生成 CFG。我们可以用它来获取整个程序的CFG吗?

0 投票
1 回答
112 浏览

c - 无法为 Linux ELF 二进制文件提取常量和 argc

我正在使用最新版本的 angr (9,0,'gitrollling')。[我在 angr 版本 (9, 0, 4663) 中得到相同的行为]。

使用 gcc 9.3.0 我为这个简单的 C 程序创建了一个 ELF 二进制文件:

然后我使用 angr 提取函数中的常量(即“func3”和“main”)以及函数的参数数量。不幸的是,我得到的常量(下面输出中的“const”)或“argc”的答案没有意义。我得到:

我的愤怒代码:

我哪里错了?

0 投票
0 回答
722 浏览

python - Python 3.9:为什么我不能导入 angr

将angr模块安装到 Python3.9 。尝试运行程序时,我收到此错误(我使用的是 Kali linux,如果它在这里很重要的话):

我希望这是一个流行的错误,我会在互联网上找到解决方案,但没有找到任何东西。