问题标签 [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.
assembly - x86 程序集 - 编码相对 jmp
我对 gcc 如何编码相对跳转有点困惑。我有以下内容:
构建此 ( gcc -c -o test.o test.c
) 显示以下 ( objdump -M intel -d test.o
):
rasm2 -d eb00
显示jmp 2
,这意味着跳转是用偏移量 2 执行的。现在,我知道相对跳转的偏移量被添加到 的当前值eip
,它应该指向下一条指令(即nop
)。这种编码让我认为偏移量是相对于jmp
自身的地址的。不应该jmp
被编码为jmp 0
, 因为nop
已经在label
?
arm - 如何在 ida pro 中重新格式化 ac 结构
我正在尝试反汇编基于 arm64 的二进制文件我想知道如何重新格式化结构,因为我的意思不是字符串,而是至少放置在代码中的值?举个例子
但是在二进制中它实际上很难记住,而且我有时在反转时会出错。那么,是否有可能在 ida pro 7.2 或radare 2 中获得完全相同的排列字符?
shell - 在radare2(VS shell和VS gdb)(linux)中插入文件作为用户输入
我有一个文件,我想在 C 程序中用作用户输入,通过 scanf 请求用户输入(在 linux 中玩耍和学习)
让我们调用程序a.out和内容为 myImput的文件,从而:
- 在外壳中我可以去:
cat myInput | ./a.out
- 在 gdb 中我可以做:
run < myInput
一旦加载gdb a.out
在radare2中可能吗?我看到了如何注入参数,但不是内容文件作为用户输入
radare2 - 如何在radare2中为全局变量命名?
我有这样的事情:
我希望能够给地址 0x140018a38 起一个名字,所以它看起来像这样:
debugging - 如何让radare2接受十六进制输入
我目前正在radare2中调试一个名为“test”的C程序,我想知道是否有任何方法可以让我通过radare2发送十六进制字符作为输入。我的意思是当你在radare2之外运行一些东西时,你可以很容易地做这样的事情来将十六进制值作为输入发送到一个可执行文件中:
但是当我在radare2中以调试模式打开文件并尝试将十六进制值输入到我的程序中时,它并没有将以“\x”开头的字符视为十六进制字符,而是将每个字符视为实际的ascii输入字符。我可以在radare2中复制上述命令吗?
python - 如何使用 r2pipe 转储函数的反汇编
我即将编写一个软件,将二进制文件放入radare2,然后将包括指令、地址和指令的二进制表示在内的子程序转储到文本文件中。
我让它与 IDA Pro 和 IDAPython 一起工作,但我也想为radare2重新创建它。文本文件最终应如下所示:
不幸的是,网络上的资源很少,文档也不长。我很想给你更多的工作,但我不知何故被困在这里。我想出了如何使用 pdf 命令反汇编一个函数,我可能可以在 python 中像这样使用它,但是我这样做的方式,main、入口点和 sym.main 将丢失。我想反汇编整个 .text 部分或 .text 部分中的所有函数:
debugging - 如何通过r2或r2pipe获取函数参数列表和返回值(类型和值),静态反汇编和动态调试?
当反汇编程序(英特尔、带有格式 elf 或 exe 的 arm 等)时,我需要打印每个函数的参数。现在我正在使用 r2pipe 开发雷达 2。如何获取函数的参数列表(数字和类型)?或者我可以通过 IDA 脚本获取参数列表吗?
另外,在使用r2调试程序时,如何使用r2pipe获取每个参数的值并返回值?对于 int、char * 等。
python - 使用 r2pipe 进行多处理
我在使用 r2pipe(Radare2 的 API)和 python 中的多处理 Pool.map 函数时遇到问题。我面临的问题是应用程序挂在 pool.join() 上。
我希望通过 multiprocessing.dummy 类使用多线程,以便通过 r2pipe 快速评估函数。我尝试使用 Manager 类将我的 r2pipe 对象作为命名空间传递。我也尝试过使用事件,但这些似乎都不起作用。
这是我正在使用的课程。我在 main 函数中调用了 Test.thread 函数。
我希望应用程序打印出它将在 r2pipeafbj @ entry0
等中运行的命令。然后打印出包含第一个基本块地址的结果列表[40000, 50000, ...]
。
应用程序确实打印出即将运行的命令,但在打印出结果之前挂起。
assembly - rasm 和 gdb 错误指令反汇编
以下操作码的指令是什么?
我在 Sandphile 中检查了这些操作码
根据沙堆我应该得到这样的结果:
和最终解释指令:
但是当我检查 rasm 和 gdb 时,我得到了这样的错误结果:
与 gdb
reverse-engineering - 如何将radare2用于PIC32 MX534F064H
我想使用radare2对PIC32MX534微控制器进行反向引擎。它基于 MIPS,主闪存0x1D000000
位于十六进制文件中,但虚拟地址位于0x9D000000
,我不知道如何在radare2 上设置它。