![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 14.12.2009
Сообщений: 716
|
![]()
Доброго времени суток уважаемые эксперты.
1) Есть *.exe приложение (без исходного кода) - Приложение во время запуска загружает библиотеку opengl из системной директории 2) Есть my *.dll в адресном пространстве этого процесса - Внедрял следующим образом (OllyDbg) Код:
Код:
4) Мне нужно экспортировать адреса всех функций из оригинальной opengl в мою opengl (Уже готов все экспортируемые функции писать в ручную ибо у меня не получилось с _IMAGE ... ThirstThunk и т.д. все время получаю ошибки) 5) Вообщем мне необходимо чтобы моя *.dll раздавала opengl функции этому приложению. п.с. Писать за меня ничего не нужно, просто дайте какие либо подсказки да и все. Например чтобы подменить *.dll и импортировать все функции из нее необходимо то-то то-то, буду благодарен за интересные ссылки на статьи либо какой любой другой материал. Thanks a lot! Последний раз редактировалось coNsept; 20.07.2011 в 13:32. |
![]() |
![]() |
![]() |
#2 |
C++ hater
Старожил
Регистрация: 19.07.2009
Сообщений: 3,333
|
![]()
в линухе есть переменная окружения LD_PRELOAD, заставляет приложение вызывать функции из твоей библиотеки вместо стандартных. гемора минимум. для твоей задачи идеальная вещь. поищи, может и под твою ос что нить подобное есть
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance |
![]() |
![]() |
![]() |
#3 | |
Форумчанин
Регистрация: 14.12.2009
Сообщений: 716
|
![]() Цитата:
![]() |
|
![]() |
![]() |
![]() |
#4 |
C++ hater
Старожил
Регистрация: 19.07.2009
Сообщений: 3,333
|
![]()
2coNsept
ага, вот только придется сделать идентичную либу, с набором таких же функций, как и в основной. а с LD_PRELOAD ты можешь определить только нужный тебе набор функций, которые ты хочешь подменить. например, реализовываешь свою strcpy, пихаешь ее в сошник, указываешь сошник в LD_PRELOAD, и приложение будет юзать твою strcpy, игнорируя стандартную http://fy.chalmers.se/~appro/nt/DLL_PRELOAD/
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance Последний раз редактировалось pproger; 20.07.2011 в 14:06. |
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 14.12.2009
Сообщений: 716
|
![]()
Еще один вопросик, пока нахожусь не дома не могу проверить, поэтому спрашиваю правильно ли я думаю.
Вообщем подставил мою opengl32.dll в директорию с приложением и как видно в коде, я загружаю оригинальную opengl32.dll из системной директории, получаю адрес оригинальной функции и присваиваю моему указателю. То есть теперь спокойно можно юзать мой указатель как оригинальную функцию? Например как-то так: Код:
Код:
Код:
Последний раз редактировалось coNsept; 20.07.2011 в 22:43. |
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 14.12.2009
Сообщений: 716
|
![]()
ммм, ребят чет у меня не получается скормить псевдо gl функции *.dll -> *.exe
как это можно сделать? Последний раз редактировалось coNsept; 21.07.2011 в 04:38. |
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 14.12.2009
Сообщений: 716
|
![]()
Up. Никто никогда не делал такого?
|
![]() |
![]() |
![]() |
#8 |
C++ hater
Старожил
Регистрация: 19.07.2009
Сообщений: 3,333
|
![]()
2coNsept
я же тебе дал ссылку. вкури
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance |
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 14.12.2009
Сообщений: 716
|
![]()
pproger выручай, все кипит. Уже второй день ну никак я не могу скормить эти функции. Как я только не пытался, не одним методом, все время выходит штукенция что ниже...
И то что ты мне скинул, почитал, сделал все по примерчику, тоже не катит. Я увэ невнаю фто дэлаць. Googl'ил по поводу, тоже ничего толком не нашел. ![]() Код:
Код:
Последний раз редактировалось coNsept; 21.07.2011 в 21:09. |
![]() |
![]() |
![]() |
#10 | |||
C++ hater
Старожил
Регистрация: 19.07.2009
Сообщений: 3,333
|
![]()
2coNsept
ты меня извини, но у меня нет желания ставить винду и ковыряться в этом. я тебе показал, как это можно сделать просто в линуксе, тебе нужно найти, как задействовать этот же механизм в винде (по моей ссылке или еще как нить). набросал вот тебе пример с LD_PRELOAD. Цитата:
Код:
Код:
компилируем либу как динамическую Цитата:
Цитата:
я не знаю, как это сделать в винде, и реально ли. просто говорю, что знаю ![]() в винде я бы попробовал поправить таблицу импорта у нашего приложения. но это все слова, особо инжектом в винде не занимался пс. еще вариант - написать свою либу с полным набором opengl функций, внутри вызывать реальные. но это геморно
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance Последний раз редактировалось pproger; 22.07.2011 в 00:03. |
|||
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Подмена сессии | Linel | PHP | 12 | 31.03.2010 22:03 |
подмена порта | Bertrance | Свободное общение | 9 | 06.02.2010 08:30 |
Подмена IP ? | KAKTYC | PHP | 2 | 28.10.2008 00:14 |
Подмена клавиш | martinz | Win Api | 19 | 25.11.2007 09:02 |