我在要使用IDAPython重命名的名称周围放置了红色框。我搜索了API文档,然后想到了:
idc.MakeName(ea,name)
,但是,正如您所看到的,这仅在标记为dynamic_1
,dynamic_2
等的位置上放置了名称。我想重命名实际的操作数。#1 楼
idc.MakeName
应该是正确的api命令。我假设您执行了类似idc.MakeName(0x123772cd, 'dynamic_3')
的操作,而不是在指令中的实际dword上输入了名称。应该改成这样的方法:
idc.MakeName(idc.GetOperandValue(0x123772cd, 0), 'dynamic_3')
在这种情况下,
idc.GetOperandValue
将返回第零个操作数的值(即0x123ef5e0)。该地址将被标记为“ dynamic_3”,并且IDA应该更新UI以显示更改。
评论
对。就是这样,谢谢。我还没有意识到,操作数本身就具有解决这个问题的地址。您对如何像这样学习API的细节有什么建议吗?这有点不是文档中真正的东西:(
–the_endian
17年11月27日在5:16
我通常会在尝试弄清楚如何完成操作时默认查看idc / idaapy / idautil python文件。除此之外,reverseengineering.stackexchange.com / questions / 11391 /…上的资源还不错。
–班布
17年11月28日在3:33