Я пишу скрипт для дизассемблера IDA Pro в Python, используя плагин idapython
. Используя это, я могу заполнить пробелы, когда автоматический анализ IDA не соответствует требованиям.C++ name mangling от руки
Одна из областей, в которых я столкнулся, - это имена мест/функций с (при отсутствии лучшего термина) «красивые имена». Пример того, что я имею в виду показано ниже:
idapython
и IDA Pro сама только позволит мне ввести основные имена функций C-иш. Если я ввожу запрещенные символы (например, оператор разрешения области), они заменяются символами подчеркивания. Однако, если я ввожу румяное имя вручную (например, __ZN9IOService15powerChangeDoneEm
), IDA Pro будет предопределяет это для меня.
Отсюда мой вопрос: как я могу сгенерировать искаженные имена для прохождения через idapython
? Доступна ли библиотека имен? Доступен ли в Python? Могу ли я надеяться вырвать функциональность из-за g++
и обойти это?
Я надеюсь, что есть некоторые документы, вокруг которого вы можете посмотреть в ... удачу! –