问题标签 [radare2]

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

cross-reference - 如何使用 r2pipe 查找函数或字符串的交叉引用?

我正在做一个恶意软件检测项目,我同时使用radare2和r2pipe。我知道如何在“axt @function_address/string_address”命令的帮助下找到函数和字符串的交叉引用。但问题是相同的命令在 r2pipe 中不起作用,即 r2.cmd("axt @function_address")。有人可以帮我如何使用 r2pipe 查找函数或字符串的交叉引用吗?

0 投票
0 回答
59 浏览

python - 使用 R2Pipe 摄取二进制文件

我正在尝试在 Python 中使用 r2pipe 摄取二进制文件。通常要做到这一点,你会使用r2pipe.open('file_path'). 但是我已经将二进制文件加载到内存中(用于其他目的)。有没有办法 r2pipe 可以从内存中摄取二进制文件,而不是从文件路径中读取它?虽然我可以从文件路径中执行此操作,但我已经在内存中有 bin,因此重新加载它似乎是多余的。

下面是我拥有的代码的模型。

0 投票
0 回答
43 浏览

dll - 新版本二进制文件中查找相似代码的方法

落入这样的任务手中。有两个dll。正如向我解释的第二个文件(new.dll),这是第一个文件(old.dll)的新版本。这两个文件都是针对 x64 编译的。我需要在 new.dll 中找到一些从 old.dll 变成的函数。以下是其中一种功能的示例。请表达您对我查找新版本代码的方法的想法:我首先使用 rdare2 查找 old.dll 中的所有函数(超过 4 万个),创建一个带有签名的文件并将其设置在一个新文件上。最后,什么也没找到。我的结论是,这些变化不仅仅是表面上的。接下来,我决定搜索如下:

  1. 我对功能代码的片段进行了搜索。我在调用函数之前先做个开场白,然后在 new.dll 中查找这个字节序列。
  2. 我尝试查找出现在函数中的常量、字符串和其他幻数,并在 new.dll 中查找它们。
  3. 我分析了所有调用所需函数的函数,并尝试在 new.dll 中找到一组类似的调用函数。
  4. 我尝试确定调用函数的顺序直到第一个(顶部),并在新文件中找到类似的调用序列。
  5. 我分析了从所需函数调用的所有函数,并尝试在 new.dll 中找到一组类似的调用函数
  6. 在这里,我承认以上所有内容都没有帮助我。接下来,我认为既然有这样的调用 call qword ptr [rax+18h] (在分析的函数中有8个),那么这些很可能是对对象(s)的方法的调用。您可能可以找到一个 vftable 并了解这些方法属于哪个类,并且已经创建了一组类。在我的函数中调用的方法。接下来,在 new.dll 中搜索调用相应类的此类方法序列的位置。
  7. 您可能可以尝试在我的函数中查找对象的创建位置以及它的来源。接下来,在 new.dll 中寻找类似的踪迹。不确定是否可以在不调试此 dll 的情况下应用此方法。不清楚如何运行dll,因为只有三个导出函数: DllGetLCID PPMain DllEntryPoint

列出的搜索方法中哪些是乌托邦,哪些不是?也许有更多经过验证的选择?功能之一的示例:

0 投票
0 回答
53 浏览

assembly - 附加到正在运行的进程时如何使用radare2获取符号信息

我使用以下命令附加到正在运行的进程以对其进行调试。但我无法使用“is”命令获取符号,该命令不输出任何内容。

该进程正在另一个启动 gdbserver 的设备上运行。我认为应该有一种方法可以让 r2 知道 bin 文件或 so 文件在哪里,但我不知道该怎么做。

0 投票
0 回答
12 浏览

console - radare2 和 AFL 使用哪个渲染引擎?

像radare2 和afl 这样的工具以非常清晰的方式呈现。这些工具是自己处理渲染还是使用公共库?你知道任何好的 2d 控制台渲染库,它允许本着 afl 和radare 的精神进行简单的渲染吗?

谢谢!

0 投票
1 回答
30 浏览

radare2 - 如何从源离线安装radare2?

嗨我下载了radare2源代码并运行./sys/install.sh

然而,由于连接超时,它实际上失败了,codeload.github.com而在终端打印“ar:创建 libr_winkd.a”。

我尝试谷歌搜索离线安装方法,但没有找到任何线索。

因此我想问我应该如何避免这种情况,我应该安装什么样的依赖才能离线安装radare2?

非常感谢!!

0 投票
1 回答
22 浏览

linux - 如何在我的二进制文件中找到哪个共享库导出了哪个导入的符号?

我正在尝试查找导入外部符号的共享库。目前,我可以使用 nm 或许多替代方法(例如使用radare2)来获取所有导入的符号。我还可以通过使用 ldd 来获取二进制文件所依赖的库。但是,我被困在这一点上,因为我找不到一种有效的方法来获取二进制文件中的哪个外部符号取决于哪个共享库。那么,例如,我怎样才能找到以有效方式导出名为 foo 或 printf 的函数或任何东西的共享库?我举个例子:

0 投票
0 回答
29 浏览

linux - 如何离线安装radare2?

嗨,我尝试使用 centos 从源代码在离线机器上安装radare2,我的最后一篇文章在这里

部分错误信息如下

我尝试按照此方法通过安装 capstone 来修复它,但问题仍然存在。

所以想在网上问一下我该怎么做,非常感谢!!


这篇文章中可以看出,如果存在“系统范围的顶点安装”,则可以完成。那么我可以进一步问如何做到这一点TT

0 投票
1 回答
29 浏览

gdb - 有没有一种简单的方法可以从共享库中转储导出对象值?

例如,有一个符号名为country,我可以通过以下方式获取它的信息(类型、地址和长度)nm -D -S

但是我怎样才能通过一些Linux命令转储长度为(8)的地址(4028)(就像在c程序中工作的dlsym()和printf()一样)?

0 投票
0 回答
19 浏览

c - 如果我有 windows 或 mac 可执行文件并且我运行radare 2 进行逆向工程,它可以完成

假设我在 Windows 或 Mac 上编译了 C# 或 J# 或 Python 代码。我可以使用radare 2 r2对其进行反编译并以某种方式获取数据类型和值吗?我愿意运行我自己的代码以使其成为 Linux 雷达 2 可以理解的格式。就像我可以尝试使用我制作的程序进行二进制修补一样,只需在 Windows exe 上运行它并生成雷达 2 可以理解的格式。或者是否有任何其他二进制路径工具可以完成这项工作,所以请告诉我