Сейчас на форуме: (+5 невидимых) |
eXeL@B —› Программирование —› Аналог hModule своей dll.. |
Посл.ответ | Сообщение |
|
Создано: 05 октября 2007 14:06 · Личное сообщение · #1 Непонятное я название темы придумал конечно... Вобщем проблема такая: Есть лоадер и dll. dll записана в виде массива байтов внутрь лоадера. Загружается это безобразие через WPM. Короче говоря: загрузка есть, но нету hModule разумеется. А мне надо брать что-то, что может сообщить моей dll "аналог этого hModule" Дело в том что я записывал патч через GetModuleFileName, сейчас это неработает. Также есть проблема с хуками. GetModuleHandle(NULL) не берёт у меня приложение которое я хукаю. Что мне не годится - чтение registry.. Если есть соображения на этот счёт просьба отписаться. |
|
Создано: 05 октября 2007 14:25 · Личное сообщение · #2 |
|
Создано: 05 октября 2007 14:33 · Личное сообщение · #3 |
|
Создано: 05 октября 2007 14:39 · Поправил: asd · Личное сообщение · #4 Бред какой-то и нифига не понятно, что тебе надо. hModule численно равен стартовому адресу загрузки модуля. Остальное вообще не понял, что надо. Если тебе нужно просто вызвать дллмайн, то можно её передать начальный адрес загрузки модуля. если хочеш, чтобы с этой длл работали виндовые ф-ии - придётся повозиться. add Опередили |
|
Создано: 05 октября 2007 14:49 · Поправил: Troll · Личное сообщение · #5 Да, загружаю вручную. Нет, нельзя мне трогать PEB.. Мне его как-раз таки необходимо было очищать. DllMain вызывается, здесь нет проблем. Я имею ввиду что.. Ай, вот внизу приведу что мне необходимо. Вот- GetModuleFileName(hinstDLL,MyHackDirectory,255); Это раз. Тоесть мне нужно как-то просто получить патч. Как я сказал чтение регистра непоходит. Несрабатывает хук приложения с использованием GetModuleHandle... нету базы. Просто, как я могу это сделать, без hModule моей dll... Возможные варианты |
|
Создано: 07 октября 2007 01:09 · Личное сообщение · #6 |
|
Создано: 07 октября 2007 10:31 · Личное сообщение · #7 |
|
Создано: 07 октября 2007 15:33 · Личное сообщение · #8 UsAr непонял.. Да мне лишь бы как нибудь передать от лоадера патч.. надо уже в DllMain'е его прочитать. Слышал его переадают как третий аргумент lpReserved. Наверное я однако неверно выражаюсь насчёт этого hModule.. Просто у меня были хуки которые требовали свой модуль, но я их сменил, так что мне надо только патч. |
|
Создано: 07 октября 2007 22:03 · Личное сообщение · #9 Troll пишет: Загружается это безобразие через WPM. Кто-нибудь знает еще кроме ТопикСтартера, что это за такой за WPM? – а то он упорно молчит и игнорирует вопросы общественности seeq пишет: Что такое WPM? ужаснах как тоже стало интересно, плз кто знает, объясните или дайте линк напочитать про этот WPM? |
|
Создано: 07 октября 2007 22:29 · Личное сообщение · #10 |
|
Создано: 07 октября 2007 23:45 · Поправил: Prince[ART] · Личное сообщение · #11 Troll гы, лольная тема! короче, вот что тебе написал UsAr мне понятно, а что ты пишешь хз что это за такое вообще за буквы проще говоря - возьми эту длл засунь в ресурсы этого лоадера, потом скинь на диск в виде путь_имя_dll = GetTempPath + lstrcat (…,имя_dll); // путь к длл - типа постоянная строковая константа LoadResource_dll(FindResource+LoadResource+LockResource+SizeofResource +CreateFile(путь_имя_dll)+WriteFile+CloseHandle); // так делают все кому надо чтобы длл находилась в теле *.exe И потом когда требуется патч в любом месте вызывай GetTempPath + lstrcat (…,имя_dll);// и при удалении тоже Если на диск скидывать нельзя, тогда пробуй как написал UsAr, по-другому S_T_A_S_ пишет: Пиши подробнее. А лучше показывай код или еще лучше прицепи аттач со свои лоадером+ключи от дома гыгы, можно еще тупо в DllMain перебрать/поискать и сравнить имя этого лоадера с запущенными процессами, если совпало копипастим путь к этому лоадеру, ну как-то так… |
|
Создано: 08 октября 2007 09:29 · Личное сообщение · #12 |
|
Создано: 08 октября 2007 14:41 · Личное сообщение · #13 На диск скидывать нельзя. Я уже делал через CreateFile-WriteFile, этот метод неподходит. И в ресурсах мою длл тоже нельзя держать. Я уже нашёл как это сделать. Передаю при загрузке длл в аргумент lpReserved свою структуру. Параметры которой беру от лоадера. И дальше всё просто. GetFullPathName(lpReserved->path,MAX_PATH,buffer,&strip); |
|
Создано: 09 октября 2007 00:22 · Поправил: S_T_A_S_ · Личное сообщение · #14 |
|
Создано: 09 октября 2007 19:50 · Личное сообщение · #15 |
eXeL@B —› Программирование —› Аналог hModule своей dll.. |