如何自动重命名给定列表中的某些 IDA 函数?

逆向工程 艾达 蟒蛇 自动化 脚本
2021-06-13 11:00:41

我有一个包含函数名称和地址对列表的文本文件,结构如下:

194C:841B LoadMessage
194C:8429 ShowDialog
...

有没有办法(例如:脚本,自动化,...)根据文本文件自动重命名IDA反汇编的所有关系函数?

1个回答

这种自动化称为 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,选择脚本并运行它。请注意,您应该插入文件名并验证地址转换是否正确。

希望它提供某种方向。