问题标签 [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.
python - Python 2.7.6 r2pipe.open 无法加载二进制文件
我安装了 r2pipe,但它没有运行。我不明白。
python - 由于“错误:函数“void r_io_section_list_visual (...)”的参数过多,无法安装radare2-bindings
我正在尝试为 Python ( http://www.radare.org/r/down.html ) 安装radare2-bindings。
从 github 克隆项目并运行 ./configure --prefix=/usr 后,输出中的 python 范围内的一切似乎都正常(错误来自我不需要绑定的语言)。
但是,当我尝试在 python 文件夹上运行 make 时,我得到以下输出:
有谁知道如何解决这个问题?在这个安装过程中我已经遇到了很多问题,并且能够解决它们......但是这个问题现在真的让我陷入了困境。
python - python - 无法使用radare2打开文件:无效选项-'0'
我已经使用 pip install 安装了radare2,然后在python shell中我给出了以下代码行
我已经交叉检查 /bin/ls 是否可用。为什么我会收到此错误?
reverse-engineering - 从 Radare2 获取完整的二进制控制流图
我想使用radare2获取二进制(恶意软件)的完整控制流程图。
我从另一个关于 SO 的问题中关注了这篇文章。我想问是否ag
有另一个命令可以提供整个二进制文件的控制流图,而不仅仅是一个函数的图。
dockerfile - Dockerfile 构建错误:无法找到
我正在尝试构建以下 Radare2 dockerfile,但我认为我可能有一些格式错误。我似乎无法弄清楚如何正确安装和构建所有内容。任何帮助,将不胜感激。
尝试构建此 dockerfile 时出现以下错误:
reverse-engineering - radare2 补丁键盘输入
我正在使用radare2进行逆向工程实践。我想修补 vim 二进制文件(linux),以便当用户按下“i”时,它会被替换为“e”。
如何使用radare2在反汇编文件中找到从键盘读取的内容?
bash - 如何正确安装和调用“r2snow”radare2 反编译器?
在过去的几个小时里,我一直在尝试安装反编译器,但没有成功。由于我最近一直在使用radare2作为反汇编器,我认为使用相关的反编译器包会很好用。在发现radeco和radeco-lib目前还不够稳定,无法构建后,我使用他们的包管理器r2pm最终将r2snow BASH 脚本安装在~/.local/share/radare2/prefix/bin
.
但现在我不知道如何运行它来反编译二进制文件!我收到的错误信息是:"Usage: r2 -i '.!r2snow'"
。我知道这r2
是 的简写radare2
,并且-i
标志是传递要运行的脚本文件,但是我尝试以多种方式将 r2snow BASH 脚本传递给它,但没有成功。
有使用此特定反编译器经验的人知道如何正确调用它吗?通常我可以自己解决这个问题,但事实证明缺乏适当的文档太难了。
我不骗你,每次你不正确地调用程序时,它都会嘲笑你。最近:"Usage: r2 -i '.!r2snow'" -- This should be documented, since it's not that obvious.
也许我应该完全尝试不同的反编译器。有没有更容易设置的免费反编译器?
reverse-engineering - 为什么 'axt' 和 'aaa' 在 Radare 2 中不起作用?
这是我输入的所有内容:(我按照本教程进行操作:https ://crackmes.one/static/solution/5b51b18833c5d41c0b8ae543.zip )
assembly - 为什么 rasm2 为一条指令生成与原始二进制指令不同的代码?
我有一个 x86 二进制代码,我用radare2 打开它,并且(在可视模式下)我有以下说明:
Rabin2 给我有关二进制文件的信息:
如果我运行 rasm2 并尝试生成以下二进制代码je 0x401319;
:
它返回一个不同的二进制代码:
我不知道为什么会这样。
c++ - 如何从二进制中的给定符号获取调用者图
这个问题与我今天早些时候提出的一个问题有关:我想知道是否可以从给定函数(或符号名称,例如取自nm
)生成调用者图,即使感兴趣的函数不是“我的" 源代码(例如位于库中,例如malloc()
)
例如,要知道在malloc
名为我的程序中使用的位置,我foo
首先会查找符号名称:
然后运行一个工具(它可能需要我的程序的特殊编译/链接版本或一些编译器工件):
这将生成一个(文本)调用者图,然后我可以进一步处理。
阅读这个问题我发现radare2似乎完成了几乎所有你能想象到的事情,但不知何故我还没有设法从给定的符号生成调用者图..
进步
使用radare2
我已经设法dot
从可执行文件生成调用者图,但仍然缺少一些东西。我正在编译以下 C++ 程序,我很确定它必须使用malloc()
or new
:
我用静态库编译它,以确保我想分析的所有调用都可以在二进制文件中找到:
通过运行nm a.out | grep -E "_Znwm|_Znam|_Znwj|_Znaj|_ZdlPv|_ZdaPv|malloc|free"
你可以看到很多用于内存分配的符号。
现在我radare2
在可执行文件上运行:
使用一个小脚本(受此答案的启发),我正在从包含“sym.operatornew”的任何符号中寻找一个调用路径,但似乎没有!
有没有办法确保从/到在该二进制文件中调用的任何函数生成调用图所需的所有信息?
有没有更好的方法来运行radare2?看起来不同的调用图可视化类型提供了不同的信息 - 例如,ascii 艺术生成器确实提供了点生成器未提供的符号名称,而点生成器提供了有关调用的更多详细信息。