当前位置: 首页 > news >正文

radare2:一个能逆向分析几乎所有二进制文件的开源框架

文章目录

  • radare2:一个能逆向分析几乎所有二进制文件的开源框架

radare2:一个能逆向分析几乎所有二进制文件的开源框架

GitHub 上有一个逆向工程框架,Star 数已经超过 24000,它就是 radare2。

radare2 简称 r2,是一套完整的逆向工程工具集。它最初只是一个命令行十六进制编辑器,后来逐步发展成一个功能齐全的底层分析工具。

r2 能做什么?简单说,它能分析、调试、反汇编、修改二进制文件。无论是本地硬盘上的文件,还是内核内存,或者是通过远程 gdb/windbg 服务器连接的程序,r2 都能处理。

r2 的架构支持范围很广。操作系统方面,覆盖了 Windows(从 XP 到 arm64)、Linux、macOS、Android、各种 BSD、Haiku、Solaris、AIX 等。CPU 架构方面,支持 x86、x86-64、ARM、MIPS、PowerPC、RISC-V、SPARC、m68k、Z80 等几十种。文件格式方面,ELF、PE、Mach-O、DEX、WASM 这些常见的都能识别,连 GameBoy、PSX、NDS 这些游戏机的格式也支持。

r2 的命令行交互方式比较特别。打开一个文件后,用aaa进行分析,afl列出所有函数,pdf反汇编当前函数,agf生成函数的 ASCII 图。整个操作逻辑是围绕地址和命令展开的,上手需要一点时间,但熟悉之后效率很高。

安装 r2 最直接的方式是从源码编译:

git clone https://github.com/radareorg/radare2 radare2/sys/install.sh

也支持 meson/ninja 构建。Windows 用户可以用 .bat 脚本配合 MSVC 或 MinGW。如果不想折腾环境,r2 还提供了 Nix 包,以及通过 pip 安装的 r2env 方式。

r2 的插件生态是它的一个亮点。官方维护的 r2pm 包管理器可以搜索和安装插件。比较常用的有这些:

r2ghidra 集成了 Ghidra 的反编译器,在 r2 里用pdg命令就能调出反编译结果。r2frida 把 Frida 的动态插桩能力接了进来,用r2 frida://0就能启动。r2dec 是一个用 JavaScript 写的反编译器,通过pdd命令使用。r2yara 可以在 r2 里运行 Yara 规则。radius2 是一个基于 boolector 的符号执行引擎。

还有一些新一点的插件值得关注。decai 和 r2ai 把大语言模型引入了逆向分析流程,r2ai 甚至能在本地跑 Llama 模型。r2hermes 专门处理 React Native 的 Hermes 字节码。warrp 则打通了 r2 和 Binary Ninja 的 WARP 格式。

r2 内置了 JavaScript 解释器,可以用脚本扩展功能。也可以通过 r2pipe 从 Python、Go、Rust 等语言调用 r2,实现自动化分析。r2papi 在 r2pipe 之上封装了一层更高级的 API。

r2 每年会举办 r2con 大会,YouTube 频道上有历年的演讲录像。官方还写了一本书,放在 book.rada.re 上,覆盖了 r2 的主要用法。社区在 Discord、Telegram、Mastodon、IRC 上都比较活跃。

r2 采用 LGPLv3 协议发布,各个插件可以有不同的许可证。作为一个已经发展了十多年的项目,r2 的代码质量和社区治理都比较成熟。

。作为一个已经发展了十多年的项目,r2 的代码质量和社区治理都比较成熟。

http://www.jsqmd.com/news/1101533/

相关文章:

  • 角色扮演 Prompt 的设计哲学:从人设构建到一致性维持的工程化实践
  • 告别混乱会议纪要:用pyannote-audio 3.1.3自动分离会议录音中的不同发言人(附完整代码)
  • 告别手动复制粘贴!用R语言脚本5分钟搞定TCMSP中药靶点批量提取
  • 选题卡壳改稿反复?okbiye 开题报告专属 AI 模块,一站式搞定毕业立项全流程
  • 用Python和MATLAB搞定数学建模:从人口预测到传染病模型实战
  • 计算机毕业设计之基于类风湿性关节炎诊疗康护小程序的设计与实现
  • 别再只用默认视频了!手把手教你为Quill富文本编辑器自定义Video标签(支持宽高、自动播放)
  • 2026精密折弯机源头厂家选择指南
  • 告别玄学调参:用Python+NumPy手搓一个匹配滤波器,实测误码率下降有多猛
  • AI黑客松实战:基于Spring AI与Cursor构建NBA选秀分析系统
  • 告别混乱会议纪要:用pyannote-audio 3.1.1自动分离多人对话(附完整Python代码)
  • 用Hadoop MapReduce分析公司薪资数据:手把手教你计算各部门月度平均工资(附完整Java代码)
  • AI颠覆编程分工:美团金服全栈化转型揭秘
  • 创建threejs工程
  • 别再截图了!用NXOpen一键把UG属性信息窗口导出为TXT文件(附完整C++代码)
  • iOS应用安全加固实战:从代码混淆到运行时防护的完整防护体系
  • 妙鸭相机爆款增长叙事已经彻底终结:第一代 C 端 AIGC 产品为什么留不住用户?
  • 2026德阳黄金回收白银回收铂金回收旧料回收怎么选?五家高实价铂金白银线下门店测评清单 + 联系方式
  • 2026年落叶松木桩批发厂家选择指南:优质供应
  • 求推荐好用的降英文AI工具代理
  • Python自动化测试:从pytest安装到企业级配置实战
  • Cursor Free VIP:三步解决Cursor AI试用限制,免费享受Pro功能
  • 别再傻傻用网页测速了!用Python的speedtest库写个自动测速脚本,还能定时发报告
  • 线程如何停止?线程之间如何协作?线程之间的异常如何处理? _
  • 浏览器内的推理引擎:WASM 端侧 AI 推理的架构与实现
  • Meta与Discord合作VR应用上线,可跨平台与好友畅聊!
  • 别再死记硬背!用Python+NumPy手把手推导齐次变换矩阵(附代码)
  • 用ESP8266和SU-03T做个会说话的温湿度时钟(附OLED显示和风扇控制代码)
  • 从零到一:用 Qt6/C++ 打造一套支持加密通信的在线会议系统
  • 别再对着十六进制发懵了!手把手教你用C# Socket解析三菱PLC的MC协议A-1E报文