Получение функций из DLL

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: Получение функций из DLL

Сообщение FireFenix » 30.05.2009 (Сб) 12:17

Начал искать FNDLL.... кое как нашёл.... начал рыться в ней..... не нашёл, трансформацию адресов, но программка интересная..... в панике полез в гугл искать все отвты.... нашёл пост на англ, где смещение расчитывается относительно секций...... начал перебирать все возможные варианты расчёта смещений.... судя по логике пришёл с Offset = RVA_Table - Virtual_Address_Section + Physical_Address_Section, и тут случайно обновляю форум и вижу твой пост, ааааа .... стока мучался =)

Вот интересно с тем, когда физический адрес превышает виртуальный
Хакер писал(а):Тут надо смотреть чуть более хитро: размер секции в файле может быть меньшим, чем размер секции в памяти. Тогда «недостающая часть» не будет взята из файла. Так вот, если RVA попадает на такую uninitialized область, значит ему вообще не соответствует никакой физический адрес (смещение в файле)

Hard Wisdom в своём мануале писал(а):Physical Size может быть больше, чем Virtual Size. Это происходит, когда "умный" линкер заявляет строгий размер секции (не кратный Object Align). В таком случае хвост секции теоретически не используется.

Т.е. получается, если
Код: Выделить всё
Physical_Size_Section > Virtual_Size_Section AND (Offset - Physical_Address_Section - Virtual_Size_Section) > 0

тогда выходит, что таблицы как бы не существет, т.е. ложно инициализированна?

И вот пару глупых вопросов:
1) т.к. имена функций в таблице экспорта хранятся в ASCIZ, то что бы считать их массив, нужно каждый элемент от смещения из таблицы считывать до 0x00?
2) также имеется в таблице экспорта имя нашей библиотеки. Зачем оно нужно если имя библиотеки = файл ?
3) также имются различные версии где только можно MajorVersion MinorVersion они играют какую-либо роль?
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる

Пред.

Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 65

    TopList