如何在 IDAPython 中重命名内存地址操作数?

逆向工程 蟒蛇
2021-07-09 09:35:52

我需要在 IDAPython 中重命名一些内存地址“名称”。我说的是 dword_805672 格式的。请看下面的截图:

在此处输入图片说明

我在我想用 IDAPython 重命名的名称周围放置了红色框。我搜索了 API 文档,我想出了:idc.MakeName(ea,name)但是,正如您所看到的,这仅在标记为 的点中放置了一个名称dynamic_1dynamic_2依此类推。我想重命名实际操作数。

1个回答

idc.MakeName应该是正确的 api 命令。我假设你做了一些类似idc.MakeName(0x123772cd, 'dynamic_3')的事情,而不是在指令中的实际双字上做名字。

应该做这样的事情:

idc.MakeName(idc.GetOperandValue(0x123772cd, 0), 'dynamic_3')

在这种情况下,idc.GetOperandValue将返回第零个操作数的值(即 0x123ef5e0)。然后该地址将被标记为“dynamic_3”,IDA 应更新 UI 以显示更改。