问题标签 [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 投票
0 回答
151 浏览

c++ - 为什么radare2为非空main()返回一个空的导入列表?

我有以下要为其生成调用图的小程序:

我以一种我希望保留所有信息的方式编译它,以确保可以在二进制文件中找到所有必需的符号:

然后我运行radare2生成一个调用图,使用 Python 对其进行格式化pprint并搜索sym.main

输出包含:

这意味着(至少我认为是这样)main()包含对所列符号的调用。

当我现在重复所有内容但添加-staticg++调用时,sym.main条目不再包含任何符号:

结果是

对此我能做些什么吗?当它们被粘在二进制文件上时,我如何才能看到对标准库的调用?

0 投票
1 回答
123 浏览

radare2 - 如何隐藏自动生成的评论?

在 Radare2 中反汇编时,输出用内存窥视、十进制转换等的随机注释进行修饰,例如:

我发现它们在很大程度上无关紧要:例如,我不在乎将0x14其用作位移而不是固定地址时的值。我使用什么命令来隐藏它们,无论是全局还是特定地址?

0 投票
1 回答
1284 浏览

reverse-engineering - 如何在离线安装中安装radare2插件?

我了解如何正常安装插件

但是当我在一个已经安装了radare2但没有互联网访问的系统上时,我将如何安装r2dec?有没有办法复制源代码并在某处编辑配置文件以通知 r2 它的存在?

0 投票
0 回答
69 浏览

dump - 转储中的虚拟地址

当我使用 XDD 和 Radare2 时,为什么转储文件中的虚拟地址不同?

Radare2-转储

Xdd转储

第一张图显示的是 Radare2-dump,第二张图是 xdd-dump。地址并不完全不同。
xdd 是: 000007b0
radare2 是: 0x004007b0

为什么会有偏移量0x00400000

编辑:我在 Linux 上工作。

0 投票
0 回答
76 浏览

assembly - 注册值与破解套件中的反汇编不匹配

所以我对这整个逆向工程很陌生。我一直在研究 IOLI 破解挑战,它有 10 个关卡,我用radare2 解决了其中的3 个。但是我现在被困在第 4 个,而且我不明白的寄存器发生了一些事情。

在调试器模式下,我在第三个断点 (0x080484f5) 处转储了寄存器值,到目前为止,程序已经创建了一些变量,这些变量在前一行的 add 中使用。据我所知,程序应该将 90 和 492 加在一起并将值存储在 eax 中。但是当我转储寄存器时,值是 0xff8c6bb0。我似乎无法弄清楚为什么寄存器值与反汇编所说的不匹配。如果有人能告诉我我做错了什么,将不胜感激

0 投票
2 回答
4193 浏览

radare2 - 如何使用雷达获取地址的价值

如果我使用radare2,并且我运行,假设dr在调试时,它将打印一些寄存器的指针。让我们假装esp正在解决0x04084308或类似的事情。如果我想获得esp指向的值,我该怎么做?

提前致谢。

0 投票
1 回答
232 浏览

arm64 - 如何在radare2中修复'无法在第3行组装'bl 0x400588'

我正在连接一个二进制文件(aarch64),我想重写分支指令以分支到特定地址。我正在使用 Radare2 重写分支。但是只要分支的目标地址在当前指令地址之前,它就会说“无法汇编...”。它也不能组装'b.gt ...'

即使我尝试使用 (wa) 编辑具有相同操作码的指令,它也会给出相同的错误(无法汇编),但如果我尝试使用 (wx) 复制十六进制指令,那么它可以工作!.对于其他指令,如 (mov),它也可以正常工作(使用 wa)

0 投票
2 回答
1084 浏览

c - 如何在安装 r2dec 时修复“r_cons.h/r_types.h:没有这样的文件或目录”

我正在尝试为radare2 安装r2dec 插件。构建失败,因为缺少一些文件。

首先我确实运行了以下命令

$r2pm 初始化

然后

$r2pm 初始化

然后我尝试使用以下方式安装它:

$r2pm -i r2dec

当构建失败时,我安装了 npm,因为对此答案的评论建议它 https://stackoverflow.com/a/51466052/10854709

$sudo apt install nodejs

预期的输出将是一个成功的构建。

实际输出如下:

r2dec make 安装完成:进入目录 '/home/me/.local/share/radare2/r2pm/git/r2dec-js/p' cc -I/home/me/.local/share/radare2/prefix/include - g -O3 -I/usr/include/libr -I./duktape -L/home/me/.local/share/radare2/prefix/lib -lr_core -lr_config -lr_debug -lr_bin -lr_anal -lr_bp -lr_egg -lr_asm - lr_lang -lr_parse -lr_flag -lr_cons -lr_reg -lr_search -lr_syscall -lr_fs -lr_io -lr_socket -lr_magic -lr_crypto -lr_hash -lr_util -ldl -lm -std=c99 -shared -fPIC duktape/duktape.c duktape/duk_console.c core_pdd .c -o core_pdd.so

duktape/duk_console.c:13:20:致命错误:r_cons.h:没有这样的文件或目录

[..]
core_pdd.c:8:21:致命错误:r_types.h:没有这样的文件或目录

[..]

编译终止。Makefile:10:目标“all”的配方失败 make:*** [all] 错误 1 ​​make:离开目录“/home/me/.local/share/radare2/r2pm/git/r2dec-js/p”

0 投票
1 回答
1142 浏览

x86-64 - Radare2 Disassembler 你如何组织可视面板(V!)?

我想使用 Radare2 来了解如何将 C 组装成程序集,但我在布局方面遇到了问题。我觉得V!模式会非常方便,因为您可以在指令指针在程序中移动时看到寄存器更新,但我不明白布局。

这是我想要的布局示例: 在此处输入图像描述

似乎当我添加一个窗口(如这张照片中的堆栈或寄存器)时,它出现在屏幕外,我必须尝试关闭不同的窗口并拆分窗口,直到布局到位。有没有一种简单的方法可以准确地更改每个窗口中的内容?

我知道“X”关闭一个窗口,“z”将当前窗口切换到前面,“-”/“|” 分割一个窗口。

我已尝试查看帮助,但似乎无法找出与此问题相关的任何其他命令。

0 投票
0 回答
214 浏览

linux - 如何动态切换标准输入?- >雷达2

我知道可以将标准输入设置为项目配置文件中定义的文件内容。不过,我想要的是在调试时更改标准输入的能力。有没有办法在linux系统上做到这一点?

基本上我需要这个,因为我对 debuggee 的下一个输入取决于它以前的输出之一。这意味着我无法在开始调试之前设置正确的标准输入内容。

事实上,我需要在调试时设置它!

非常感谢!