我有一个包含函数名称和地址对列表的文本文件,结构如下:
194C:841B LoadMessage
194C:8429 ShowDialog
...
有没有办法(例如:脚本,自动化,...)根据文本文件自动重命名IDA反汇编的所有关系函数?
我有一个包含函数名称和地址对列表的文本文件,结构如下:
194C:841B LoadMessage
194C:8429 ShowDialog
...
有没有办法(例如:脚本,自动化,...)根据文本文件自动重命名IDA反汇编的所有关系函数?
这种自动化称为 IDAPython 的方法,其文档在这里:
1 - 将此脚本保存在某处,记住在哪里。
#Not used, not debbugged, not ran even once
#Use on your own risk, beware errors
import idaapi
import idautils
import idc
def do_rename(l):
splitted = l.split()
straddr = splitted[0]
strname = splitted[1].replace("\r", "").replace("\n", "")
if straddr.find(":") != -1: #assuming form segment:offset
#removing segment, offset should be unique, if it isn't so, we should handle it differently
straddr = straddr.split(":")[1]
eaaddr = int(straddr, 16)
idc.MakeCode(eaaddr)
idc.MakeFunction(eaaddr)
idc.MakeNameEx(int(straddr, 16), strname, idc.SN_NOWARN)
if __name__ == "__main__":
f = open( "your_file_name", "r")
for l in f:
do_rename(l)
f.close()
在 IDA 中,打开 File-->Script file,选择脚本并运行它。请注意,您应该插入文件名并验证地址转换是否正确。
希望它提供某种方向。