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

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

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.08.2012, 17:02   #1
artbotva
Форумчанин
 
Аватар для artbotva
 
Регистрация: 17.03.2012
Сообщений: 105
Вопрос Инжект dll в игру

Всем доброго времени суток,
У меня появился вопросик, можно ли Заинжектить dll в процесс игры?
Мне бы хотелось чтобы это выглядело так чтобы когда запускаешь прогу, она ждала появления процесса игры (так реализовано во многих трейнерах)
И автоматически инжектила эту dll после его появления...
Как это бы реализовать?
Заранее спасибо.
Недостижение того, что ты хотел, является иногда лучшим подарком судьбы
artbotva вне форума Ответить с цитированием
Старый 13.08.2012, 17:11   #2
DelhiProgramer
Пользователь
 
Регистрация: 10.08.2012
Сообщений: 84
По умолчанию

О загнул...
Самое простое чтобы узнать, запущена ли прога, искать её окно по заголовку, но можно возиться с процессами, потому что определить программу по заоловку окна это дико
насчёт длл вообще не знаю. Тут есть люди поумнее меня
DelhiProgramer вне форума Ответить с цитированием
Старый 13.08.2012, 17:16   #3
artbotva
Форумчанин
 
Аватар для artbotva
 
Регистрация: 17.03.2012
Сообщений: 105
По умолчанию

Цитата:
Сообщение от DelhiProgramer Посмотреть сообщение
О загнул...
Самое простое чтобы узнать, запущена ли прога, искать её окно по заголовку, но можно возиться с процессами, потому что определить программу по заоловку окна это дико
насчёт длл вообще не знаю. Тут есть люди поумнее меня
Заголовок в играх я считаю дело рандомное :D мне бы как нибудь впихнуть dll в процесс)
Недостижение того, что ты хотел, является иногда лучшим подарком судьбы
artbotva вне форума Ответить с цитированием
Старый 13.08.2012, 17:23   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

ТС-у все равно для инжекта нужен PID, так что можно искать по процессу.
кода масса.

да и по инжекту тоже масса всего...
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 13.08.2012, 17:35   #5
artbotva
Форумчанин
 
Аватар для artbotva
 
Регистрация: 17.03.2012
Сообщений: 105
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
ТС-у все равно для инжекта нужен PID, так что можно искать по процессу.
кода масса.

да и по инжекту тоже масса всего...
Приведи пример массы... да и как определить PID?
Недостижение того, что ты хотел, является иногда лучшим подарком судьбы
artbotva вне форума Ответить с цитированием
Старый 13.08.2012, 17:40   #6
Maincore
Пользователь
 
Регистрация: 06.07.2011
Сообщений: 51
По умолчанию

Цитата:
Сообщение от artbotva Посмотреть сообщение
Приведи пример массы... да и как определить PID?
Код:
hWnd:=findwindow('#32770','Programm');
GetWindowThreadProcessId(hWnd, @PID);
Maincore вне форума Ответить с цитированием
Старый 13.08.2012, 17:51   #7
artbotva
Форумчанин
 
Аватар для artbotva
 
Регистрация: 17.03.2012
Сообщений: 105
По умолчанию

Цитата:
Сообщение от Maincore Посмотреть сообщение
Код:
hWnd:=findwindow('#32770','Programm');
GetWindowThreadProcessId(hWnd, @PID);
А кода самого инжекта не найдется? :D
Недостижение того, что ты хотел, является иногда лучшим подарком судьбы
artbotva вне форума Ответить с цитированием
Старый 13.08.2012, 18:22   #8
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

В гугле все найдется. А вообще CreateRomoteThread, я так свои dll в процессы внедряю.
Человек_Борща вне форума Ответить с цитированием
Старый 13.08.2012, 19:13   #9
Maincore
Пользователь
 
Регистрация: 06.07.2011
Сообщений: 51
По умолчанию

Цитата:
А кода самого инжекта не найдется? :D
Вот компонент hide mod
Внедряешь так:

Код:
var
DirName: string;
h:integer;
mProcessID,mThreadID: Dword;

.....

GetDir(0, DirName);
h:=FindWindow('#32770','programm'); 
mThreadID:= GetWindowThreadProcessId(h,@mProcessID);
AttachDllToProcess(mProcessID, DirName+'\Heid.dll');

Последний раз редактировалось Maincore; 13.08.2012 в 19:16.
Maincore вне форума Ответить с цитированием
Старый 14.08.2012, 11:07   #10
Kix.IV
Участник клуба
 
Регистрация: 11.08.2012
Сообщений: 1,226
По умолчанию

Кто-то на wasm.ru хорошую статью написал. Она ка раз на делфи.
Kix.IV вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Debugger Kernel BORDBK160.DLL or BORDBK160N.DLL is missing or not registered. Человек_Борща Общие вопросы Delphi 0 15.07.2012 14:01
Доступ к переменной, объявленной в одной dll, из другой dll eduard93 Visual C++ 2 25.09.2011 11:10
Определить SIZEMEM у DLL(Размер dll в памяти процесса) Человек_Борща Общие вопросы Delphi 6 22.07.2011 20:54
Ошибка при выхове функций Bass.dll из другой DLL SalasAndriy Общие вопросы Delphi 7 21.10.2009 23:36