MaterStudiorum.ru - домашняя страничка студента.
Минимум рекламы - максимум информации.


Авиация и космонавтика
Административное право
Арбитражный процесс
Архитектура
Астрология
Астрономия
Банковское дело
Безопасность жизнедеятельности
Биографии
Биология
Биология и химия
Биржевое дело
Ботаника и сельское хоз-во
Бухгалтерский учет и аудит
Валютные отношения
Ветеринария
Военная кафедра
География
Геодезия
Геология
Геополитика
Государство и право
Гражданское право и процесс
Делопроизводство
Деньги и кредит
Естествознание
Журналистика
Зоология
Издательское дело и полиграфия
Инвестиции
Иностранный язык
Информатика
Информатика, программирование
Исторические личности
История
История техники
Кибернетика
Коммуникации и связь
Компьютерные науки
Косметология
Краткое содержание произведений
Криминалистика
Криминология
Криптология
Кулинария
Культура и искусство
Культурология
Литература и русский язык
Литература(зарубежная)
Логика
Логистика
Маркетинг
Математика
Медицина, здоровье
Медицинские науки
Международное публичное право
Международное частное право
Международные отношения
Менеджмент
Металлургия
Москвоведение
Музыка
Муниципальное право
Налоги, налогообложение
Наука и техника
Начертательная геометрия
Новейшая история, политология
Оккультизм и уфология
Остальные рефераты
Педагогика
Полиграфия
Политология
Право
Право, юриспруденция
Предпринимательство
Промышленность, производство
Психология
Психология, педагогика
Радиоэлектроника
Разное
Реклама
Религия и мифология
Риторика
Сексология
Социология
Статистика
Страхование
Строительные науки
Строительство
Схемотехника
Таможенная система
Теория государства и права
Теория организации
Теплотехника
Технология
Товароведение
Транспорт
Трудовое право
Туризм
Уголовное право и процесс
Управление
Управленческие науки
Физика
Физкультура и спорт
Философия
Финансовые науки
Финансы
Фотография
Химия
Хозяйственное право
Цифровые устройства
Экологическое право
Экология
Экономика
Экономико-математическое моделирование
Экономическая география
Экономическая теория
Эргономика
Этика
Юриспруденция
Языковедение
Языкознание, филология
    Начало -> Информатика, программирование -> Вызов функции в другом процессе

Название:Вызов функции в другом процессе
Просмотров:68
Раздел:Информатика, программирование
Ссылка:none(0 KB)
Описание:Идея. А зачем нам DLL?. Ограничения . Получение адреса загрузки DLL . Получение адреса функции. Простой способ . Способ для настоящих программистов. Поиск экспортируемой функции в PE-файле. Как в PE-файле добраться до секции экспорта.

Часть полного текста документа:

Вызов функции в другом процессе Сергей Холодилов
    I just called to say I love you,
    And I mean it from the bottom of my heart.
    Stevie Wonder
    Внедрению DLL так или иначе (обычно в связи с перехватом API) посвящено достаточно большое количество статей. Но ни в одной из тех, которые я читал, не говорится, как извне заставить эту DLL сделать что-нибудь полезное. Обычно авторы ограничиваются перехватом необходимых API-функций где-нибудь в DllMain и последующей реакцией на вызовы этих самых функций. Между тем, взаимодействие с внедрённой DLL даёт возможность корректировать и направлять её работу и, тем самым, позволяет добиваться значительно большего эффекта.
    Если внедрённая DLL создаёт свой поток, задача взаимодействия легко решается, так как в этом случае можно использовать любые методы IPC: сообщения, сокеты, именованные каналы, ... , при желании можно даже COM-сервер сделать :)
    ПРЕДУПРЕЖДЕНИЕ
    В описании DllMain сказано, что некоторые функции, в том числе CreateThread, из неё вызывать нельзя. Объяснение "почему они говорят, что нельзя" можно найти у Рихтера (в русском четвёртом издании это глава "DLL: более сложные методы программирования", раздел "Как система упорядочивает вызовы DllMain"), у него же написано, что на самом деле можно, если осторожно. :) Просто при создании потока надо не забывать, что его выполнение начнётся не раньше, чем текущий поток покинет DllMain. Но это всё более-менее очевидные и не очень красивые (на мой взгляд) способы. Мне кажется, я нашёл более интересный и элегантный метод. Ему и посвящена эта статья. Идея
    Идея тривиальна. Алгоритм состоит всего из четырёх шагов (плюс ещё один по желанию):
    Так или иначе загрузить в адресное пространство процесса-жертвы DLL, содержащую нужную функцию.
    ПРИМЕЧАНИЕ
    "Так или иначе" означает, что DLL может быть загружена любым способом. Например, это может быть advapi32.DLL, которую процесс-жертва грузит сам. Если вы хотите, чтобы исполнялся ваш код, скорее всего, DLL придётся внедрять. Описание внедрения DLL смотрите в дополнительных источниках в конце статьи. Получить адрес загрузки DLL.
    Получить адрес функции.
    Вызвать функцию при помощи CreateRemoteThread.
    (опционально) Дождаться завершения потока и получить возвращаемое значение функции вызовом GetExitCodeThread.
    А зачем нам DLL?
    При желании можно напрямую записать весь исполняемый код в адресное пространство процесса-жертвы и запустить его тем же CreateRemoteThread. При большом желании можно добиться, чтобы это заработало... Основная проблема, подстерегающая вас на этом пути, заключается в том, что все функции, которые вызывает ваш код, должны находиться точно по тем адресам, куда передаётся управление. С учётом того, что:
    код будет расположен в случайном месте адресного пространства, так как вам вряд ли удастся выделить память по тому же адресу;
    DLL могут быть загружены по другим адресам,
    "само собой" ничего не получится. Чтобы добиться работоспособности кода, нужно модифицировать используемые вашим кодом адреса, то есть, фактически, выполнить задачу загрузчика. А зачем выполнять её вручную, если можно положиться на загрузчик :) ? Ограничения
    Использование CreateRemoteThread связано с очевидными ограничениями:
    Поддерживается только линейка Windows NT/2000/XP. ............






Похожие работы:

Название:Мифология. Функции мифа. Мифологические школы
Просмотров:679
Описание: Мифология как мир первообразов и материя духовности Но для создателей мифологии она была не просто достоверной или истинной. У них и вопроса не могло возникнуть об истинности. Для первобытного человека мифология

Название:Общественные функции СМИ. По кн. Введение в журналистику
Просмотров:780
Описание: Цвик В. Л. Для чего существует журналистика? Зачем она нужна отдельному индивиду и обществу в целом? Иными словами, каковы социальные функции СМИ? Сразу условимся, что термин "функции” мы будем понимать как разн

Название:Понятие, задачи, система и основные функции органов внутренних дел
Просмотров:664
Описание: Органы внутренних дел представляют собой сложную, разветвленную систему, в которую входят в качестве ее функциональных элементов (подсистем) милиция, пожарная охрана, внутренние войска, следственный аппарат и др. О

Название:Последние наблюдения процессов образования планет в нашей галактике
Просмотров:745
Описание: , заставляют по новому взглянуть на теорию образования солнечной системы Ранее обнаруженные объекты формирующихся звезд и планетных систем в разных районах нашей Галактики, вносят массу загадок того, насколько сл

Название:Биофизика клетки и мембранных процессов
Просмотров:875
Описание: А.Б.Рубин, О.Р.Кольс, Т.Е.Кренделева и др. Разнообразие живых систем во многом определяется многообразием структуры и функции клеточных мембран. Они не только формируют клетку и внутриклеточные структуры, отделяют

 
     

Вечно с вами © MaterStudiorum.ru