📕
Radare2手册
  • 简介
  • 历史
  • Radare2框架
  • 下载radare2
  • 编译与可移植性
  • Compilation on Windows
  • Compilation on Android
  • 用户界面
  • 快速上手
    • 命令行选项
    • 命令格式
    • 表达式
    • 基本的debug操作
    • Contributing to radare2
  • 配置
    • Colors
    • 配置项
    • radare2相关文件
  • 基本命令
    • 定位
    • 块大小
    • 节区
    • 映射文件
    • 输出模式
    • 标记符(Flags)
    • 写入数据
    • Zoom模式
    • 复制/粘贴
    • 字节比较
    • SDB
    • Dietline
  • 可视化模式
    • 反汇编界面
    • 汇编界面
    • 变量编辑器界面
    • 可视化面板
  • 搜索字节
    • 基本的搜索用法
    • 配置搜索引擎
    • 搜索重复字节序列
    • 搜索中的自动化
    • 回溯搜索
    • 搜索汇编指令
    • Searching for AES Keys
  • 反汇编
    • 为反汇编添加元数据
    • ESIL
  • 分析
    • 代码分析
    • 变量
    • 类型
    • 调用约定
    • 虚函数表
    • 系统调用
    • 模拟执行
    • Symbols 信息
    • 函数签名
    • 图形化命令
  • 脚本化
    • 循环(Loops)
    • 宏(Macros)
    • R2pipe
  • 调试器
    • 入门
    • 从ida, GDB 或 WinDBG迁移到radare2
    • 寄存器(Registers)
    • 内存映射(Memory Maps)
    • 堆(Heap)
    • 文件(Files)
    • 反向调试
    • Windows消息(Messages)
  • 远程访问
    • 远程GDB调试
    • 远程WinDbg
  • 命令行工具
    • Rax2
    • Rafind2
    • Rarun2
    • Rabin2
      • 文件信息识别
      • 入口点(EP)
      • 导入(Imports)
      • 导出(Exports)
      • Symbols (exports)
      • 库文件
      • 字符串(String)
      • 节区(Sections)
    • Radiff2
      • 二进制文件比较
    • Rasm2
      • 汇编
      • 反汇编
      • 配置项
    • Ragg2
      • Language
    • Rahash2
      • Rahash Tool
  • 插件
    • IO 插件
    • Asm 插件
    • Analysis 插件
    • Bin 插件
    • 其它插件
    • Python插件
    • 对插件进行调试
    • 测试
    • 打包
  • Crackmes
    • IOLI
      • IOLI 0x00
      • IOLI 0x01
    • Avatao R3v3rs3 4
      • .radare2
      • .first_steps
      • .main
      • .vmloop
      • .instructionset
      • .bytecode
      • .outro
  • Reference Card
  • Acknowledgments
由 GitBook 提供支持
在本页
  • asm.arch
  • asm.bits
  • asm.syntax
  • asm.pseudo
  • asm.os
  • asm.flags
  • asm.lines.call
  • asm.lines.out
  • asm.linestyle(存疑)
  • asm.offset
  • asm.trace
  • asm.bytes
  • asm.sub.reg
  • asm.sub.jmp
  • asm.sub.rel
  • asm.sub.section
  • asm.sub.varonly
  • cfg.bigendian
  • cfg.newtab
  • scr.color
  • scr.seek
  • scr.scrollbar
  • scr.utf8
  • cfg.fortunes
  • cfg.fortunes.type
  • stack.size

这有帮助吗?

  1. 配置

配置项

上一页Colors下一页radare2相关文件

最后更新于4年前

这有帮助吗?

下面列出了最常用的一些配置变量,可以用e命令(不加参数)列出所有变量。例如,若要查看定义于"cfg"命名空间下的所有变量,就使用e cfg.命令(注意结尾有个点),还可以使用e? cfg.列出这些命令的帮助信息。

e??命令则能获取radare2中所有配置项的帮助信息,由于输出信息非常之多,最好使用~命令过滤出你所需要的部分:

e??~color

可视化模式下可以使用Vbe命令进入变量菜单进行浏览。

asm.arch

定义了目标的CPU架构,该信息会使用在反汇编(pd, pD命令)及代码分析(a命令)阶段。e asm.arch=?或rasm2 -L命令会显示该配置项可选的架构。 添加新架构支持非常容易,r2提供了相应的接口。以x86为例,其利用了多种第三方反汇编引擎,包括GNU binutils, Udis86以及自己编写的一些工具。

asm.bits

该配置项决定了当前架构寄存器的位宽,可选的值包含:8, 16, 32, 64。不过要注意的是,不是所有的架构都支持这些asm.bits位数。

asm.syntax

该配置项用于选择反汇编语句的语法风格(Intel或AT&T)。目前该配置项仅能影响Udis86反汇编引擎对Intel 32/Intel 64目标的分析,可选的值包含intel和att。

asm.pseudo

该配置项为一个bool变量,用于设置汇编伪代码的语法风格,"False"表示使用原生风格,由当前架构定义,"true"则启用伪代码风格。例如,其会将:

│           0x080483ff      e832000000     call 0x8048436
│           0x08048404      31c0           xor eax, eax
│           0x08048406      0205849a0408   add al, byte [0x8049a84]
│           0x0804840c      83f800         cmp eax, 0
│           0x0804840f      7405           je 0x8048416

转化为

│           0x080483ff      e832000000     0x8048436 ()
│           0x08048404      31c0           eax = 0
│           0x08048406      0205849a0408   al += byte [0x8049a84]
│           0x0804840c      83f800         var = eax - 0
│           0x0804840f      7405           if (!var) goto 0x8048416

在对一些不清楚不熟悉的架构进行反汇编时,这个配置很有用。

asm.os

设置当前加载的二进制文件的目标系统。通常情况下OS会通过rabin -rI自动检测,但使用asm.OS可用于切换到另一个OS所用的syscall表。

asm.flags

如果设置为"true",反汇编视图中会显示flags列。

asm.lines.call

如果设置为"true",在反汇编(pd, pD命令)输出结果的左侧会有跳线,可以直观地显示当前代码块内控制流的变化(jump和call)。同样的还可以看看asm.lines.out配置项。

asm.lines.out

若设置为"true",还会绘制那些超出当前代码块的控制流线。

asm.linestyle(存疑)

该配置项为一个bool变量,控制控制流的分析方向。若设置为"false",其会自顶向下地分析代码块,否则自底向上进行分析。默认设置为"false",对于改善代码可读性来说这是一个更好的选择。

asm.offset

Bool变量,控制是否显示汇编语句的offset。

asm.trace

该配置项为Bool变量,控制是否在opcode的左边显示追踪信息(Sequence和counter信息),该配置项的设计目的在于辅助程序的追踪分析。

asm.bytes

用于控制是否显示指令的原始字节,为一个bool变量。

asm.sub.reg

该配置项为一个bool变量,用于控制是否以将寄存器的名字替换为参数名或其在指令中扮演的角色。

例如现在有这么一段代码:

│           0x080483ea      83c404         add esp, 4
│           0x080483ed      68989a0408     push 0x8049a98
│           0x080483f7      e870060000     call sym.imp.scanf
│           0x080483fc      83c408         add esp, 8
│           0x08048404      31c0           xor eax, eax

设置该变量后将变成:

│           0x080483ea      83c404         add SP, 4
│           0x080483ed      68989a0408     push 0x8049a98
│           0x080483f7      e870060000     call sym.imp.scanf
│           0x080483fc      83c408         add SP, 8
│           0x08048404      31c0           xor A0, A0

asm.sub.jmp

控制是否在反汇编输出中替换jump、call分支的对象。例如,启用该选项时,jal 0x80001a40将显示为jal fcn.80001a40。

asm.sub.rel

该配置项为一个bool变量,控制是否在反汇编输出中替换相对于pc的地址。若启用此选项,引用的地址将显示为引用字符串。

例如:

0x5563844a0181      488d3d7c0e00.  lea rdi, [rip + 0xe7c]    ; str.argv__2d_:__s

启用该变量时,上面的语句将会被显示为如下样式:

0x5563844a0181      488d3d7c0e00.  lea rdi, str.argv__2d_:__s    ; 0x5563844a1004 ; "argv[%2d]: %s\n"

asm.sub.section

该配置决定是否在地址前加上该地址所属的节区。

也就是说,对于下面这个语句:

0x000067ea      488d0def0c01.  lea rcx, [0x000174e0]

启用该配置后会被转换为:

0x000067ea      488d0def0c01.  lea rcx, [fmap.LOAD1.0x000174e0]

asm.sub.varonly

该配置项是一个bool变量,控制是否将本地变量的表达式替换为一个本地变量名。 例如:rbp - var_14h会被替换为var_14h

cfg.bigendian

改变大小端,"true"代表大端,"false"代表小端。

cfg.newtab

若启用该配置,自动补全时将会显示完整命令的名字及其帮助信息。

scr.color

该变量可以指定屏幕输出的色彩模式:"false"(或0)代表无色,"true"(或1)代表16色模式,2代表256色模式,3代表真彩色模式。如果发现你钟爱的色彩主题看起来怪怪的,就试试提高该变量的值吧。

scr.seek

该变量接受一个表达式或一个指针/flag(比如 eip)。设置该变量后radare2在启动时会跳转到该地址。

scr.scrollbar

scr.utf8

该配置项为一个bool值,控制在输出中是否使用UTF-8替换原本的ANSI字符。

cfg.fortunes

启用或禁用每次radare2启动时的"签语(fortune message)"。

cfg.fortunes.type

这些签语分为不同类型,当cfg.fortune为true时该配置项将决定哪些类型的签语可以在radare2启动时显示,因此可以通过配置项针对不同的受众对签语进行微调。目前的签语类型包括tips,fun,nsfw,creepy。

stack.size

该变量控制debug时栈的大小,以字节为单位。

如果你曾设置过 (fz?),则设置该变量可以在可视化模式下显示带flagzone的滚动条。 设置为1时滚动条放在右端,为2时滚动条在顶部,而3时滚动条在底部。

标志空间(flagzones)