Сейчас на форуме: Magister Yoda, johnniewalker, Kybyx, vsv1, r0lka, -Sanchez-, testrev1337 (+3 невидимых) |
eXeL@B —› Крэки, обсуждения —› Парсинг экспорта |
Посл.ответ | Сообщение |
|
Создано: 17 марта 2011 14:32 · Поправил: s0l · Личное сообщение · #1 Хочу спарсить экспорт библиотеки kernel32.dll Возникла следующая проблема: У меня есть ImageBase, AddressTableRVA, NamePointersRVA, но имена в NamePointers располагаются в алфавитном порядке, а адреса - нет. Для примера: получаю первое имя и первый адрес Code:
т.е. как видите, адрес совсем от другой функции. Прошу чисто теоретически подсказать правильный алгоритм парсинга, в голову ничего не приходит =( |
|
Создано: 17 марта 2011 14:47 · Поправил: BoRoV · Личное сообщение · #2 s0l пишет: Хочу спарсить экспорт библиотеки kernel32.dll Это наверно не на ХР хочешь, т.к. там я такой ф-ии не нашел. s0l пишет: Прошу чисто теоретически подсказать правильный алгоритм парсинга, в голову ничего не приходит Покажи свой, попробуем найти ошибки в нем, если они есть. ----- Лучше быть одиноким, но свободным © $me |
|
Создано: 17 марта 2011 14:50 · Личное сообщение · #3 |
|
Создано: 17 марта 2011 14:55 · Личное сообщение · #4 Алгоритм парсинга описан в мануале: Thus, when the export name pointer table is searched and a matching string is found at position i, the algorithm for finding the symbol’s address is: i = Search_ExportNamePointerTable (ExportName); ordinal = ExportOrdinalTable [i]; SymbolRVA = ExportAddressTable [ordinal - OrdinalBase]; |
|
Создано: 17 марта 2011 14:58 · Личное сообщение · #5 А что там думать, проще некуда. Это с одного моего старого проекта. Code:
----- Лучше быть одиноким, но свободным © $me |
|
Создано: 17 марта 2011 15:35 · Личное сообщение · #6 |
eXeL@B —› Крэки, обсуждения —› Парсинг экспорта |