Здасте. Вот такой вопрос: Неким процессом вызывается моя длл, ф-ией LoadLibrary. Мне нужно сделать так, чтоб моя длл после DLL_PROCESS_ATTACH, подгрузила оригинальную длл. и вернула ее хендл как резулятат работы LoadLibrary в файле ехе. Есть ли какие соображения по этому поводу. Буду очень признателен!
Геморой.... Об альтернативных вариантах не думал?? 1. А почему нельзя пропатчить импорт оригинальной длл, чтобы при ее загрузке загрузилась и твоя длл? все делается элементарно... Тему импорта только обсуждали. 2. Можно пропатчить оригинальную либу, т.е. на точку входа вставить след. комманды: LoadLibraryA(mylib.dll); //тут мы загружаем себя RepairOrigLib(hLib); //а тут восстанавливаем байты оригинальной либы. 3. Добавить свою либу в импорт ехе... А то что ты описал... Ну... Загружаемая либа к функции LoadLibraryA имеет довольно посредственное отношение... Тебе прийдется невероятные системные маневры совершать, чтобы перебить результат уже выполняемой функции...
Самый простой способ - создать такую же DLL (по кр. мере в части имен импорт. функций) и подменить название DLL в файле, откуда она вызывается.
romix причем тут импорт? подгрузка либы присходит LoadLibrary.. можно попробовать так: 1. После погрузки длл копируешь себя на другое место в памяти процесса. 2. На свое старое место мапишь оригинаоьную Имя длл должны быть одинаковыми. И не знабываем про релоки.