DLL Injector на Delphi
|
|
sk0rpi0n | Дата: Четверг, 15.03.2012, 21:57 | Сообщение # 1 |
Участник
Зарегистрирован: 28.05.2011
Группа: Пользователи
Сообщений: 65
Статус: Offline
| Я тут одновременно с ассемблером занялся читами для игр, и чужие инжекторы dllок меня не очень устраивают... А как вообще можно сделать свой? Нужно, чтобы он загружал dll в игру во время запуска... Может кто-нибудь что-то подсказать по этому поводу? Хотя я ещё попытаюсь погуглить, но во многих статьях обычно встречаются пара ошибок, которые не знаешь как решить... И всё к чертям летит... По этому и пишу тут.
UPD: хотя я тут ещё исходник нашёл, посмотрю его. Но от советов не откажусь!
C++ - попса :D
Сообщение отредактировал sk0rpi0n - Четверг, 15.03.2012, 21:59 |
|
| |
Волк-1024 | Дата: Четверг, 15.03.2012, 22:45 | Сообщение # 2 |
Авторитетный
Зарегистрирован: 24.07.2011
Группа: Модераторы
Сообщений: 469
Статус: Offline
| Ну вот еще кодец:
Доступно только для пользователей
Тут всё фурычит. На данном коде делал прогу.
Pascal, C\C++, Assembler, Python
Сообщение отредактировал Волк-1024 - Четверг, 15.03.2012, 22:46 |
|
| |
sk0rpi0n | Дата: Пятница, 16.03.2012, 13:41 | Сообщение # 3 |
Участник
Зарегистрирован: 28.05.2011
Группа: Пользователи
Сообщений: 65
Статус: Offline
| Чот я не понял, а где там задаётся, в какую программу инжектить?
Ой, сорри, туплю.
В общем, вот я написал: 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 всегда разный...
C++ - попса :D
Сообщение отредактировал sk0rpi0n - Пятница, 16.03.2012, 14:14 |
|
| |
Волк-1024 | Дата: Пятница, 16.03.2012, 14:20 | Сообщение # 4 |
Авторитетный
Зарегистрирован: 24.07.2011
Группа: Модераторы
Сообщений: 469
Статус: 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...
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... Пичалька, в чём может быть ошибка? P.S. DLL лежит в папке с программой(моей).
C++ - попса :D
Сообщение отредактировал sk0rpi0n - Пятница, 16.03.2012, 14:28 |
|
| |
Волк-1024 | Дата: Пятница, 16.03.2012, 14:31 | Сообщение # 7 |
Авторитетный
Зарегистрирован: 24.07.2011
Группа: Модераторы
Сообщений: 469
Статус: Offline
| Попробуй добавь еще вот это: Доступно только для пользователей
Юзать: Доступно только для пользователей
Если не получится попробуй прикреплённую прогу. Она основана на этом коде.
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!, но результата в игре я опять же не вижу... Не, нифига он не инжектит, я попробовал левое имя дллки ввести, всё равно пишет, что инжектил...
C++ - попса :D
Сообщение отредактировал sk0rpi0n - Пятница, 16.03.2012, 14:48 |
|
| |
Волк-1024 | Дата: Пятница, 16.03.2012, 15:14 | Сообщение # 9 |
Авторитетный
Зарегистрирован: 24.07.2011
Группа: Модераторы
Сообщений: 469
Статус: 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
| скажи что за игру такую ты хочешь заинжэктить досмерти?
|
|
| |
sk0rpi0n | Дата: Пятница, 16.03.2012, 17:39 | Сообщение # 12 |
Участник
Зарегистрирован: 28.05.2011
Группа: Пользователи
Сообщений: 65
Статус: Offline
| Quote скажи что за игру такую ты хочешь заинжэктить досмерти? biggrin Для начала - C&C: Renegade. А потом весь мир.
C++ - попса :D
|
|
| |
dolphin | Дата: Суббота, 17.03.2012, 14:50 | Сообщение # 13 |
Администратор
Сообщений: 906
Статус: Offline
| sk0rpi0n, а не пробовал её в реестр записать в апинитдллс, кстати скорее всего библиотечку придётся регистрировать в системе. Библиотека самописная?
попробуй включить в нее следующее
Доступно только для пользователей
Система: Windows 10 x64, Kali Linux Среды программирования: Delphi 7, Delphi 10.x
Я не профессионал, я всего лишь любитель Я не вредитель, я всего лишь теоретик
Сообщение отредактировал 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
| ВОт пример инжекта, лови
|
|
| |