Вторник, 27.06.2017, 18:37 Приветствую вас Гость | Группа "Гости" 


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Модератор форума: xXxSh@dowxXx, Anton93, Волк-1024 
delfcode » Delphi » Вопросы по Delphi » DLL Injector на Delphi
DLL Injector на Delphi
sk0rpi0nДата: Четверг, 15.03.2012, 21:57 | Сообщение # 1
Участник
Зарегистрирован: 28.05.2011
Группа: Пользователи
Сообщений: 65
Статус: Offline
Я тут одновременно с ассемблером занялся читами для игр, и чужие инжекторы dllок меня не очень устраивают... А как вообще можно сделать свой? Нужно, чтобы он загружал dll в игру во время запуска... Может кто-нибудь что-то подсказать по этому поводу? biggrin
Хотя я ещё попытаюсь погуглить, но во многих статьях обычно встречаются пара ошибок, которые не знаешь как решить... И всё к чертям летит... По этому и пишу тут. happy

UPD: хотя я тут ещё исходник нашёл, посмотрю его. Но от советов не откажусь!


C++ - попса :D

Сообщение отредактировал sk0rpi0n - Четверг, 15.03.2012, 21:59
 
Волк-1024Дата: Четверг, 15.03.2012, 22:45 | Сообщение # 2
Авторитетный
Зарегистрирован: 24.07.2011
Группа: Модераторы
Сообщений: 467
Статус: Offline
Ну вот еще кодец:

Доступно только для пользователей

Тут всё фурычит. На данном коде делал прогу.


Pascal, C\C++, Assembler, Python

Сообщение отредактировал Волк-1024 - Четверг, 15.03.2012, 22:46
 
sk0rpi0nДата: Пятница, 16.03.2012, 13:41 | Сообщение # 3
Участник
Зарегистрирован: 28.05.2011
Группа: Пользователи
Сообщений: 65
Статус: Offline
Quote
Ну вот еще кодец:

Чот я не понял, а где там задаётся, в какую программу инжектить? smile

Ой, сорри, туплю. biggrin

В общем, вот я написал:
Code

var
gamestarted:hwnd;
begin
Writeln('Waiting for game starts');
gamestarted:=findwindow('Renegade',nil);
repeat

until(gamestarted<>0);
Writeln('Game started! Injecting DLL...');
InjectDLL('fun.dll',4360);
Writeln('Successfull! DLL has been injected!');
end.

И не знаю, как оптимально сделать ожидание старта игры. Эти репит унтил - ужасный код, да и не работает, к тому же. Но, как я понял, оно не будет работать и после нахождения игры, так как PID всегда разный... sad


C++ - попса :D

Сообщение отредактировал sk0rpi0n - Пятница, 16.03.2012, 14:14
 
Волк-1024Дата: Пятница, 16.03.2012, 14:20 | Сообщение # 4
Авторитетный
Зарегистрирован: 24.07.2011
Группа: Модераторы
Сообщений: 467
Статус: Offline
Вот для получения Id'а процесса:

Доступно только для пользователей


Pascal, C\C++, Assembler, Python

Сообщение отредактировал Волк-1024 - Пятница, 16.03.2012, 14:22
 
sk0rpi0nДата: Пятница, 16.03.2012, 14:22 | Сообщение # 5
Участник
Зарегистрирован: 28.05.2011
Группа: Пользователи
Сообщений: 65
Статус: Offline
А вот такой пойдёт?
Code
GetWindowThreadProcessId(GameStarted, @ProcessId)

Я там немного переделал, теперь всё работает на ура, но DLL не инжектится почему-то(вроде как инжектится, но в игре не вижу того, что видел при её инжекте другим инъектором).
И ещё такая вещь - инъектор запускается ну очень долго. Делал как консольное приложение, добавил в uses Windows и функцию инъекции. А загружается долго как Photoshop... wacko


C++ - попса :D

Сообщение отредактировал sk0rpi0n - Пятница, 16.03.2012, 14:27
 
sk0rpi0nДата: Пятница, 16.03.2012, 14:28 | Сообщение # 6
Участник
Зарегистрирован: 28.05.2011
Группа: Пользователи
Сообщений: 65
Статус: Offline
Написал вот так:
Code
if InjectDLL('fun.dll',GetWindowThreadProcessId(GameStarted, @ProcessId))=true then Writeln('Successfull! DLL has been injected!')
   else Writeln('Injection failed. Sorry...');

Ну и мне выдаёт Injection failed. Sorry... Пичалька, в чём может быть ошибка? smile
P.S. DLL лежит в папке с программой(моей).


C++ - попса :D

Сообщение отредактировал sk0rpi0n - Пятница, 16.03.2012, 14:28
 
Волк-1024Дата: Пятница, 16.03.2012, 14:31 | Сообщение # 7
Авторитетный
Зарегистрирован: 24.07.2011
Группа: Модераторы
Сообщений: 467
Статус: Offline
Попробуй добавь еще вот это:
Доступно только для пользователей

Юзать: Доступно только для пользователей

Если не получится попробуй прикреплённую прогу. Она основана на этом коде.
Прикрепления: Injector.exe(424Kb)


Pascal, C\C++, Assembler, Python

Сообщение отредактировал Волк-1024 - Пятница, 16.03.2012, 14:35
 
sk0rpi0nДата: Пятница, 16.03.2012, 14:35 | Сообщение # 8
Участник
Зарегистрирован: 28.05.2011
Группа: Пользователи
Сообщений: 65
Статус: Offline
Аргх, запускается долго очень. Как запущу - отпишу результат.

UPD: Не помогает. Попробую с твоей функцией получения ID процесса.
UPD #2: С твоей функцией пишет, мол DLL Injected!, но результата в игре я опять же не вижу... fie
Не, нифига он не инжектит, я попробовал левое имя дллки ввести, всё равно пишет, что инжектил...


C++ - попса :D

Сообщение отредактировал sk0rpi0n - Пятница, 16.03.2012, 14:48
 
Волк-1024Дата: Пятница, 16.03.2012, 15:14 | Сообщение # 9
Авторитетный
Зарегистрирован: 24.07.2011
Группа: Модераторы
Сообщений: 467
Статус: Offline
Хммм. Очень странно. У меня всё инжектит...

Pascal, C\C++, Assembler, Python
 
sk0rpi0nДата: Пятница, 16.03.2012, 15:18 | Сообщение # 10
Участник
Зарегистрирован: 28.05.2011
Группа: Пользователи
Сообщений: 65
Статус: Offline
Quote
Хммм. Очень странно. У меня всё инжектит...

А я кажется понял. Игра на D3D, хотя... В библиотеке-то прописано всё под D3D и другими инъекторами инъектится...


C++ - попса :D
 
xXxSh@dowxXxДата: Пятница, 16.03.2012, 17:13 | Сообщение # 11
Авторитетный
Зарегистрирован: 22.01.2012
Группа: Модераторы
Сообщений: 702
Статус: Offline
скажи что за игру такую ты хочешь заинжэктить досмерти? biggrin
 
sk0rpi0nДата: Пятница, 16.03.2012, 17:39 | Сообщение # 12
Участник
Зарегистрирован: 28.05.2011
Группа: Пользователи
Сообщений: 65
Статус: Offline
Quote
скажи что за игру такую ты хочешь заинжэктить досмерти? biggrin

Для начала - C&C: Renegade. А потом весь мир. biggrin


C++ - попса :D
 
dolphinДата: Суббота, 17.03.2012, 14:50 | Сообщение # 13
Администратор
Сообщений: 902
Статус: Offline
sk0rpi0n, а не пробовал её в реестр записать в апинитдллс, кстати скорее всего библиотечку придётся регистрировать в системе. Библиотека самописная?

попробуй включить в нее следующее

Доступно только для пользователей


Система: Windows 10 x64, Windows XP
Среды программирования: Delphi 7, Delphi 10 Seattle

Я не профессионал, я всего лишь любитель
Я не вредитель, я всего лишь теоретик


Сообщение отредактировал dolphin - Суббота, 17.03.2012, 14:52
 
xXxSh@dowxXxДата: Суббота, 17.03.2012, 14:56 | Сообщение # 14
Авторитетный
Зарегистрирован: 22.01.2012
Группа: Модераторы
Сообщений: 702
Статус: Offline
вот попробуй может что то из этого тебе поможет:

http://www.progamercity.net/delphi/107-delphi-simple-dll-injection.html

http://www.xakep.ru/post/26796/

другие более усовершенствованные методы видел только на C++
 
sk0rpi0nДата: Воскресенье, 18.03.2012, 10:04 | Сообщение # 15
Участник
Зарегистрирован: 28.05.2011
Группа: Пользователи
Сообщений: 65
Статус: Offline
Quote
Библиотека самописная?

Да. Твой код включить попробую, но ещё раз повторюсь, что другими инъекторами она инъектится на "ура".
xXxSh@dowxXx, Спс, посмотрю эти статьи.


C++ - попса :D
 
MonkallДата: Вторник, 17.05.2016, 18:41 | Сообщение # 16
Новичок
Зарегистрирован: 17.05.2016
Группа: Пользователи
Сообщений: 1
Статус: Offline
Спасибо за статью

dsa
 
AndroidДата: Четверг, 29.12.2016, 11:25 | Сообщение # 17
Постоянный
Зарегистрирован: 13.12.2011
Группа: Пользователи
Сообщений: 100
Статус: Offline
ВОт пример инжекта, лови
Прикрепления: injectlib.zip(6Kb)
 
delfcode » Delphi » Вопросы по Delphi » DLL Injector на Delphi
Страница 1 из 11
Поиск:

delfcode.ru © 2008 - 2017 Хостинг от uCoz