Меню сайта
Категории каталога
Песни для репетиций [1]
Песни группы ChVartz [1]
Наш опрос
Кто вылетет первый?
Всего ответов: 6
Форма входа
Поиск
Друзья сайта

Суббота, 24.10.2026, 14:24

Группа ChVarTz


Каталог файлов
Главная » Файлы » Файлы группы » Песни группы ChVartz

Вариант
[ Скачать с сервера (4.7 Kb) · Скачать удаленно () ] 07.12.2007, 19:48
Предлагаемый мною способ основан на методах, называемым внедрением dll. Основан на информации из книги Дж. Рихтера "Создание эффективных WIN32-приложений". По ссылке соответствующая глава в электронном виде.
http://rosigma.com/96.aspx

Кратко о решении.
Решение состоит их 2х частей - программы и библиотеки dll.
Сначало необходимо получить идентификатор интересующего процесса. Его можно посмотреть, например, в Task Manager, попробовать найти процесс по окну и т.д. Программа подобно менеджеру приложений выводит список процессов, и ждет ввода id.

Записываем в реестр (можно было бы, например, в файл записывать) данные для dll - имя процесса и времена ожидания и блокировки.

Затем необходимо выполнить действия от имени интересующего процесса. Для этого было бы хорошо заставить процесс загрузить нашу dll. В windows можно запустить поток в адресном пространстве другого процесса, с помощью функции CreateRemoteThread.

Формат функции потока совпадает с форматом функции LoadLibrary (кроме типа аргемента, но это не важно, посколько используется указатель). Этим мы и воспользуемся.

Кроме того необходимо расположить данные в памяти процесса (у каждого процесса память своя). Это делается с помощью функций VirtualAllocEx и WriteProcessMemory. В выделенную память копируем путь до dll.

Затем запускам в удаленном процессе поток, фактически вызывая от имени процесса LoadLibrary().

Таким способом можно загрузить dll в уже работающий процесс. Загрузить dll в создаваемый процесс (приложение) можно, записав его в реесте по следующему ключу
HKEY_LOCAL_MACHINE SOFTWARE Microsoft Windows NT CurrentVersion Windows AppInit_DLLs

Плохо, что загружаться такая dll будет во все приложения с графическим интерфейсом smile Поэтому необходима поверка что мы было загружено искомое приложение.

Теперь про dll.
При загрузке dll вызывается функция DllMain - аналог main для обычных приложений. Из неё мы проверяем имя процесса и время.
Если мы ожидаем процесс, то запускаем поток, который будет ждать необходимое время, а потом вызовет exit(0) и завершит процесс.
Если время блокировки, то сразу вызываем exit(0).

Метод работает с перезагрузкой приложения (пока ждем завершения, будем ждать в пределах таймаута) и перезагрузкой компьютера.




И ещё насчёт файлов
файл InjectExe.cpp - надо скомпилировать как exe
файл InjectDll.cpp - необходимо скомпилировать как dll

Файлы скачай,выместила тут.Ссылка "скачать" вверху
Категория: Песни группы ChVartz | Добавил: Sweetwish
Просмотров: 531 | Загрузок: 369 | Рейтинг: 0.0/0 |

Всего комментариев: 0
Имя *:
Email *:
Код *:
ChVartz 2026 | Сайт управляется системой uCoz