определить размер dll
каким образом можно определить размер загруженной dll в dllmain?
пока получаю путь к файлу и определяю размер файла
написано - загруженной длл. значит в памяти.
по теме - уже обсуждали. не далее чем неделю назад. пользуйте поиск по форуму. правда вопрос был про размер всего приложения со всеми дллками.
мне необходимо получить доступ к содержимому библиотеки
можно из файла прочитать, но так как она потом будет загружаться я хотел сразу двух зайцев :)
через LoadLibrary получаю адрес начала библиотеки и потом просто читать из памяти
Да, выглядит по-другому.
Почитай описание PE-формата.
мне необходимо получить доступ к содержимому библиотеки
Что значит "получить доступ к содержимому библиотеки" ?
К какому содержимому? Какой доступ?
можно из файла прочитать, но так как она потом будет загружаться я хотел сразу двух зайцев :)
через LoadLibrary получаю адрес начала библиотеки и потом просто читать из памяти
Тогда тебе ещё надо будет распарсить таблицу секций, понять куда какая секция загрузилась с какими атрибутами.
Главный вопрос: для чего тебе это?
Что значит "получить доступ к содержимому библиотеки" ?
К какому содержимому? Какой доступ?
к байтам
нужно это для расчета crc при загрузке библиотеки
как можно сделать чтобы библиотека сама при загрузке проверяла свою контрольную сумму?
нужно это для расчета crc при загрузке библиотеки
как можно сделать чтобы библиотека сама при загрузке проверяла свою контрольную сумму?
Так CRC загруженной библиотеки не только будет отличаться от CRC файла, но и будет всегда разной.
Ты все же прочитай про PE-формат и о процессе загрузки испольняемых файлов.
Написание очередной супер-пупер неломаемой защиты для программы?
А то вы,небось,и свой алгоритм для расчёта CRC реализовать хотели
А то вы,небось,и свой алгоритм для расчёта CRC реализовать хотели
CheckSumMappedFile для DLL бесполезна.
P.S.DLL тоже относятся к "executable image".Оно и понятно
P.S.DLL тоже относятся к "executable image".Оно и понятно
Ну да!
This function is used by any application that creates or modifies an executable image.
Ты пробовал применять эту функцию к загруженным в память (как image) DLL ?
Попробуй, будешь удивлен.
Эта функция по сути своей делает CRC участка памяти, заданного входными параметрами BaseAddr и FileLen.
Одна и та же DLL, загруженная на разных машинах или на одной но по разным адресам, будет иметь разные CRC из-за IAT, RelocTable и пр.
А если к этому ещё добавить секции, содержимое которых меняется (data, shared)?