Показать сообщение отдельно
  #1  
Старый 04.03.2012, 15:35
_dss _dss вне форума
Прохожий
 
Регистрация: 29.03.2009
Сообщения: 4
Репутация: 10
По умолчанию Странные имена экспортируемых функций

Добрый день! Кто может подсказать, почему, когда я подгружаю стороннюю длл написанную на с++ и получаю полный список экспорта этой длл, я вижу не функцию, к примеру, _Activate, а нечто вроде ?@@_Activate...(дословно не скажу, всё дома осталось) и ещё много других символов. Я знаю только, что это определяется при компиляции длл, но с какой целью? И как сконвертировать такое имя функции к нормальному виду? Укажите, пожалуйста, где прочитать. И если найдётся кусок кода для изучения, буду премного благодарен. Кстати, тот же PE Explorer показал не только нормальные имена функций, но и их прототипы. Умеет же как-то.

Задача - найти в длл несколько функций с определёнными именами и получить их RV-адреса.

1. Подгружаю длл и получаю список экспорта (за основу взял великолепный код от Rouse_)
2. Заношу все получаемые функции в список строк
3. В списке ищу соответствие.
4. Если соответствие найдено - получаю адрес вызовом GetProcAddress

П.3 валится из-за несоответствия имён что у меня и что нашла процедура.

Заранее спасибо за любую помощь!
Ответить с цитированием