![]() |
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]() ![]() ![]() |
|
Alexey68 |
|
||||
Alexey ![]() Профиль Группа: Участник Сообщений: 98 Регистрация: 10.4.2013 Репутация: нет Всего: нет |
Здравствуйте, прошу объяснить как получить список экспортируемых и импортируемых функций?
С Уважением Алексей.
Это сообщение отредактировал(а) GremlinProg - 12.4.2013, 07:31 |
||||
|
|||||
DarthTon |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 106 Регистрация: 7.2.2009 Репутация: 5 Всего: 6 |
Касательно теории рекомендую почитать оригинальную спецификацию PE формата MSDN или же что-нибудь вроде этого RSDN.
Практическая реализация: Мой старый код для получения адреса экспортируемой функции модуля. Работает с уже отмапленым в память образом. Чтобы заработало для данных из файла необходимо подправить соответствующие виртуальные адреса, либо же подгрузить файл в память как PE образ (CreateFileMapping + SEC_IMAGE).
Аналог для импорта (Код выдран из функции класса поэтому надо допилить немного). Так же требует проекции файла как PE образа.
|
||||
|
|||||
Alexey68 |
|
|||
Alexey ![]() Профиль Группа: Участник Сообщений: 98 Регистрация: 10.4.2013 Репутация: нет Всего: нет |
Спасибо, попробую...,
>>Чтобы заработало для данных из файла необходимо подправить соответствующие виртуальные адреса Не знаю как( Применительно к моему коду... на си Это сообщение отредактировал(а) Alexey68 - 13.4.2013, 00:10 |
|||
|
||||
DarthTon |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 106 Регистрация: 7.2.2009 Репутация: 5 Всего: 6 |
Это сообщение отредактировал(а) DarthTon - 15.4.2013, 16:12 |
|||
|
||||
Alexey68 |
|
|||
Alexey ![]() Профиль Группа: Участник Сообщений: 98 Регистрация: 10.4.2013 Репутация: нет Всего: нет |
компилятор выдаёт:
[ILINK32 Error] Error: Unresolved external '_strtok_s' referenced from C:\DOCUMENTS AND SETTINGS\ADMIN\¦L+++Lг TT+T\C_AND_ASM\PE_INFO_C_IMPORT_MAIN\DEBUG\MAIN.OBJ использую C++Builder 2007, проект консольный си Это сообщение отредактировал(а) Alexey68 - 15.4.2013, 22:25 |
|||
|
||||
DarthTon |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 106 Регистрация: 7.2.2009 Репутация: 5 Всего: 6 |
Замените
на
|
||||
|
|||||
Alexey68 |
|
||||
Alexey ![]() Профиль Группа: Участник Сообщений: 98 Регистрация: 10.4.2013 Репутация: нет Всего: нет |
спасибо большое за помощь, при попытке получить список экспортируемых функций, ординалов,
программа ничего не выводит и правильно ли я расставил для вывода функцию printf
Это сообщение отредактировал(а) feodorv - 19.4.2013, 09:35 |
||||
|
|||||
DarthTon |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 106 Регистрация: 7.2.2009 Репутация: 5 Всего: 6 |
Ну printf'ы правильные. Может у анализируемого файла нету таблицы экспорта?
![]() |
|||
|
||||
Alexey68 |
|
|||
Alexey ![]() Профиль Группа: Участник Сообщений: 98 Регистрация: 10.4.2013 Репутация: нет Всего: нет |
пробую подгрузить файлы из system32, например regedit и выскакивает исключение на
строку: if((size_t)pAddressTable < ((size_t)1 << (sizeof(size_t) * 8 - 1)) && pAddressTable->Name[0]) при получении списка импортируемых функций, причём несколько (итераций в цикле проходит) функций всё же считывает. Причём если я подгружаю "обычный" exe (не системный), то всё читает, также попробовал сторонние приложения и результат тот-же. В чём может быть проблема, в отладчике тоже ошибка из отладчика:
Это сообщение отредактировал(а) Alexey68 - 19.4.2013, 17:41 |
|||
|
||||
DarthTon |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 106 Регистрация: 7.2.2009 Репутация: 5 Всего: 6 |
Вы, вероятно, грузите x64 PE файл. Или соберите сам код под х64, или поправьте структуры на их 64 битные версии.
Это сообщение отредактировал(а) DarthTon - 19.4.2013, 19:14 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Системное программирование и WinAPI" | |
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |