Radare2 设置局部变量

逆向工程 雷达2
2021-07-10 19:13:41

是否可以更改本地 var 的值Radare2我正在练习 ESIL 功能,现在我想设置局部变量的值userInput

[0x080484e6]> afvd
var userInput = 0x00177ffc  0x00000000  .... eflags
var var1 = 0x00177ff8  0x00000246  F...
var var2 = 0x00177ff4  0x00052b24  $+.. 

我无法从文档中获取此信息。最终,在调试二进制文件 (-d) 时是否可以做同样的事情?

1个回答

可悲的是,radare2 中还没有这样的功能。

但请记住,这些变量最终是您可以通过手动编辑来操作的数据。因此,您可以修改它们的值(当然有一些限制)以满足您的需要。

例如,让我们看看afvd二进制的一些随机函数的结果

[0x00400637]> afvd
var local_10h = 0x7ffffa0c1870  0x00007ffffa0c1960   `....... r13 stack R W 0x1 -->  rdi

我们只有一个变量,local_10h它位于rbp - 0x10

[0x00400637]> afvd local_10h
pxr $w @rbp-0x10

现在,让我们修改rbp-0x10为“ABCD”:

[0x00400637]> wx 41424344 @ rbp-0x10
[0x00400637]> afvd
var local_10h = 0x7ffffa0c1870  0x00007fff44434241   `ABCD... r13 stack R W 0x1 -->  rdi

所以这是一种操作变量值的方法。


radare2 是一个开源项目,拥有强大的社区和开发人员,可以随意打开一个问题,或者更好的是,提出一个拉取请求,这样我们都可以从这个功能中受益。