Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.09.2011, 13:08   #1
coNsept
Форумчанин
 
Аватар для coNsept
 
Регистрация: 14.12.2009
Сообщений: 716
По умолчанию Адресное пространство

Вообщем вопрос таков. Как обычно я со своим проектом, чьих исходников у меня нету, это некое *.exe приложение. Собственно для изменения каких либо действий я внедряю свою *.dll библиотеку в адресное пространство этого процесса. Появился такой момент, что мне приходится внедрить еще одну *.dll но делать это через дизассемблер не хочу потому что мне интересно другое. Можно ли как нибудь перенаправить подгруженную *.dll из под моей *.dll, в пространство *.exe приложения.
coNsept вне форума Ответить с цитированием
Старый 12.09.2011, 13:14   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

ну и кто вам мешает из уже внедренной dll, загрузить иную?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 12.09.2011, 14:13   #3
coNsept
Форумчанин
 
Аватар для coNsept
 
Регистрация: 14.12.2009
Сообщений: 716
По умолчанию

Может этого момента я просто не понимаю, но другая *.dll будет находится разве не в другом адресном пространстве?
То есть, по моим пробам, когда я получаю указателем некие функции *.exe приложения моей первой библиотеки, все происходит нормально. Но если я подгружаю, моей первой *.dll вторую мою *.dll и пытаюсь так же получить указателем некие функции *.exe приложения уже во второй *.dll, происходит так что вторая *.dll будто не видит вообще ничего из *.exe приложения.
coNsept вне форума Ответить с цитированием
Старый 12.09.2011, 14:19   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

адресное пространство одно для процесса, если вы попали в нужный процесс, то не важно, первая это длл или десятая.
а если вы из своей первой длл, в её dllMain загрузите вторую длл через LoadLibrary, то вторая длл попадет в тот же процесс что и первая(и тоже пространство)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 12.09.2011, 14:31   #5
coNsept
Форумчанин
 
Аватар для coNsept
 
Регистрация: 14.12.2009
Сообщений: 716
По умолчанию

Вот это мне и нужно было узнать, спасибо Пепел Феникса
coNsept вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как получить свободное дисковое пространство? askerpro Visual C++ 1 15.03.2011 18:56
4-ёх мерное пространство, реальность или нет?(17+) MyLastHit Gamedev - cоздание игр: Unity, OpenGL, DirectX 82 09.01.2011 16:04
Надвигающееся космическое пространство Rio309 Помощь студентам 5 17.05.2009 21:01
Внедрние в адресное пространство. Alex.rus Win Api 3 22.02.2008 19:55