Функции массового переименования в IDA Pro

У меня есть список из десятков тысяч пар {адрес} - {название функции}, которые я выгрузил с помощью написанного мной инструмента. Теперь я хочу переименовать все функции, например, sub_123456 становится «FooBar», потому что так написано в списке.

Любой способ сделать это?

Спасибо.


ida
person Ethon    schedule 12.09.2012    source источник


Ответы (1)


В таких случаях я загрузил бы список в Vim, изменил бы список так, чтобы он содержал два столбца: первый — адреса, во-вторых, желаемые имена. Нравится:

123456 FooBar
124584 BarFoo

Затем выполните :%s/^\(\w\+\)\s\+\(\w\+\)/MakeName(0x\1, "\2");, чтобы получить такой список:

MakeName(0x123456, "FooBar");
MakeName(0x124584, "BarFoo");

Затем скопируйте весь буфер Vim в буфер обмена с помощью 1G и "*yG. Затем в IDA введите Shift-F2, чтобы открыть редактор сценариев вручную, и вставьте с помощью Cmd-V или Ctrl-V.

person Willem Hengeveld    schedule 13.09.2012
comment
И если вы используете Visual Studio вместо Vim, замените регулярное выражение {:h} {:i} и замените на MakeName(0x\1, "\2"); - person Simeon Pilgrim; 20.02.2013