radare2 - 如何在radare2中为全局变量命名?
问题描述
我有这样的事情:
(fcn) fcn.140001020 20
fcn.140001020 ();
; XREFS: CALL 0x140001080 CALL 0x140001098 CALL 0x1400010b0 CALL 0
; XREFS: CALL 0x140001794 CALL 0x1400017ad CALL
0x140001029 mov dword [0x140018a38], eax
我希望能够给地址 0x140018a38 起一个名字,所以它看起来像这样:
0x140001029 mov dword [myGlobal], eax
解决方案
环境
- 雷达2:雷达2 4.2.0-git 23519@linux-x86-64 git.4.1.1-84-g0c46c3e1e 提交:0c46c3e1e30bb272a5a05fc367d874af32b41fe4 构建:2020-01-08__09:49:0
- 系统: Ubuntu 18.04.3 LTS
解决方案
- 我不确定radare2 是否实现了您正在寻找的确切功能,但我们可以使用 Cf 和 CCa 命令接近。
- CCa[-at]|[at] [text] [@addr] # 在给定地址添加/删除评论
- cf[?][-] [sz] [0|cnt][fmt] [a0 a1...] [@addr] # 格式化内存(见 pf?)
例子
user@host:~$ r2 /my/example
[0x00000000]> aaaa
...
[0x00000000]> s fcn.140001020
[0x140001020]> pd 1
(fcn) fcn.140001020 20
fcn.140001020 ();
; XREFS: CALL 0x140001080 CALL 0x140001098 CALL 0x1400010b0 CALL 0
; XREFS: CALL 0x140001794 CALL 0x1400017ad CALL
0x140001029 mov dword [0x140018a38], eax
[0x140001020]> CCa 0x140001020 0x140018a38 = myGlobal
[0x140001020]> pd 1
(fcn) fcn.140001020 20
fcn.140001020 ();
; XREFS: CALL 0x140001080 CALL 0x140001098 CALL 0x1400010b0 CALL 0
; XREFS: CALL 0x140001794 CALL 0x1400017ad CALL
0x140001029 mov dword [0x140018a38], eax ; 0x140001029 = myGlobal
[0x140001020]> Cf 2 w myGlobal @ 0x140018a38
[0x140001020]> pd 1 @ 0x140018a38
0x140018a38 format w myGlobal {
myGlobal : 0x140018a38 = 0xffff
} 2
[0x140001020]> q
user@host:~$
推荐阅读
- sql - 使用 proc sql 时 WHERE 子句的语法错误
- c++ - SendMessageA 方法的链接错误/冲突
- python - 根据标志创建有条件的新多列和值
- javascript - 我如何正确推动?
- python - 如何使用 Python 从 Maya Hypershade 导出着色器
- graphql - GraphQL#execute 是否在同一线程上运行所有 DataFetchers?异步行为是否委托给 DataFetcher 实现?
- python - ValueError:无法将字符串转换为浮点数。为什么?(Python)
- create-react-app - 在 index.css 中创建 CREATE_REACT_APP 环境变量
- powershell - 尝试验证 AD 组是否在特定 OU 中
- angular - 如何将 TS 中的数组值放入 NgFor HTML