Как сделать свой инжектор dll с меню

catpiza/injector

Use Git or checkout with SVN using the web URL.

Work fast with our official CLI. Learn more.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

Git stats

Files

Failed to load latest commit information.

README.md

Simple C++/C DLL injector

Простенький инъектор .dll, созданный как альтернатива для GameOwner. Использует метод LoadLibrary.

  1. Скачать injector.exe
  2. Распаковать в любую папку (желательно на флешку)
  3. Перенести вашу .dll в папку с инъектором
  4. Запустить инъектор и ввести название .dll
  5. Profit

Для компиляции кода нужен любой компилятор C++/C (например, GNU GCC Compiler). Копируете injector.cpp и компилируете, полная копи-паста компатибилити чо.

В случае если Вы будете компилировать на чистом Си, нужно будет добавить в самое начало:

В сурс коде я прописал все как можно подробнее, все должно быть понятно.

Например, чтобы код инъекции работал не только в hl2.exe, а в любом, то можно написать следующий код:

в данном случае пользователь должен будет вводить еще и имя процесса, чтобы код нормально работал.

Источник

Делаем собственный инжектор

Давным-давно, во времена мифов и легенд, когда древние Боги были мстительны и жестоки и обрушивали на программистов все новые и новые проклятия. На хабре была опубликована статья про сплайсинг.

В качестве примера в статье был приведен довольно масштабный код, который воспринимался не особо легко. Захотелось разобраться в процессе инжекта, а также написать более простой и менее громоздкий код.
Вкратце, инжектинг — это подгрузка нашей библиотеки в сторонний процесс, а сплайсинг — перехват какой-либо функции (мы перехватывали WinAPI) и модификация её работы средствами этой самой библиотеки.
Пример будет состоять из двух частей: 1 — библиотека, 2 — инжектор, который будет внедрять библиотеку в целевой процесс. Библиотеку будем писать на masm, что позволит в разы сократить объемы кода, а инжектор — на Си.

Начнем с кода библиотеки [last updated on 15 aug 2010]. Что она делает? При подгрузке она заменяет первые 5 байт функции WinAPI, которую мы хотим перехватить, на JUMP на наш перехватчик. Мы можем это сделать в большинстве случаев, когда функция имеет пролог (то есть 100%, если функция принимает больше нуля аргументов, в этом случае в начале ее будут инструкции mov edi,edi; push ebp; mov ebp;esp, или же если функция имеет локальные переменные). Иногда функция не имеет пролога, но мы все равно можем осуществить перехват, если в начале функции имеются несущественные команды, например, NOP’ы (такое было обнаружено в функции GetTickCount на Windows Vista x64). Таких функций мало, судя по всему. Я приведу пример перехвата GetTickCount, но далеко не факт, что он сработает на вашей системе. Скажем, в XP SP3 кучи NOP’ов в начале тела функции нет. Всегда смотрите, как начинается функция без аргументов в системных библиотеках, прежде чем осуществлять ее перехват. У меня GetTickCount начиналась так:

Читайте также:  Как посмотреть прошивку на приоре 16 клапанов

Источник

ГАЙД Простенький инжектор на mono для юнити игр c# (для новичков)

Fish46

Чит встроен в лаунчер

Ps. Инжектор работает по типу — Скачивание dll с сервера, в моем случае купленный хостинг(можно и гугл диск, если знать как), поиск процесса игры — если процесс не найден покажет что процесс не найден, если же он найден то скачивается dll, встраивается в игру и удаляется, работать скорее всего будет не на всех юнити играх, останется поставить защиту от декомпиляторов и написать класс для поиска некоторых программ ( CE — тот же ), думаю у людей кто понимает в c# проблем это сделать не составит
Можете предлагать темы на которые писать туториалы, если что то не получается тоже пишите, или если хотите подробное описание кода :3

Fish46

DesirePro

Чит встроен в лаунчер

Ps. Инжектор работает по типу — Скачивание dll с сервера, в моем случае купленный хостинг(можно и гугл диск, если знать как), поиск процесса игры — если процесс не найден покажет что процесс не найден, если же он найден то скачивается dll, встраивается в игру и удаляется, работать скорее всего будет не на всех юнити играх, останется поставить защиту от декомпиляторов и написать класс для поиска некоторых программ ( CE — тот же ), думаю у людей кто понимает в c# проблем это сделать не составит
Можете предлагать темы на которые писать туториалы, если что то не получается тоже пишите, или если хотите подробное описание кода :3

Источник

Как Создают Инжекторы?

Часто ли вы используете инжектор для внедрения файлов? Каждый день? А вы знали что первые инжекторы DLL файлов появлялись в открытом доступе примерно в 2010 году, это больше 11 лет назад. В то время, загрузить эту программу было крайне сложно, так как их разработка только начиналась, и они были созданы в малом количестве, к тому же просто так делиться ценным скриптом никто не хотел. В наше время скачать Инжекторы можно совершенно бесплатно и без каких либо проблем, сегодня их существует огромное количество для разных игр и не только.

Читайте также:  Клапан разбалансировки на к 131 что это такое

Что такое инжектор?
Для начала, давайте вспомним, что такое Injector? Инжектор — это не сложная программа для внедрения в запущенное приложение динамических .dll файлов, добавляя свои или изменяя готовые данные из оперативной памяти запущеного процесса. Чаще всего эта утилита используется для онлайн игр, так как для Offline развлечений изменить параметры проще. В основном с помощью инъекции, внедряют разные читы.

Как происходит инъекция?

  1. Запускается приложение, настройки которого будут изменяться путем внедрения DLL файла.
  2. Запущенный процесс, чаще всего игра, сворачивается и запускается инжектор.
  3. В скрипте для внедрения, выбирается нужная библиотека файла с расширением .dll, а также указывается путь к папке с .exe файлом запуска игры, в которую нужно внедрять скрипт.
  4. Нажимаем кнопку «Инжектить», после этого можно развернуть развлечение и увидеть изменения.

Как создают инжекторы?
Для создания простой программы инъекции, необходим компонент Visual Studio, в которой разработчик должен написать свой код для будущего скрипта. Вот пример кода для самого простого инжектора:
При компиляции этого простого кода, в настройках указывается многобайтовая кодировка, затем происходит протект готового файла для меньшей вероятности обнаружения антивирусами. На этом наш простой и рабочий скрипт успешно создан, осталось лишь им воспользоваться и попробовать внедрить какой-либо DLL в запущенное приложение.

Источник

Внедрение своего кода в адресное пространство процессов

Intro

Внедрение своего кода( динамически ) в чужие процессы — штука достаточно интересная. Это может служить как во благо, так и во зло. Хотя, понятие «зло», местами, весьма абстрактно в информационном мире, я не могу провести точную границу между тем, что «плохо», а что «хорошо», тем более, если это касается внедрения кода…

В данной статье мы займемся созданием своего DLL инжектора. Что это такое, думаю, знают все. Такой способ внедрения стороннего кода достаточно популярен и удобен.

Писать DLL Injector мы будем на C++ в среде Microsoft Visual Studio 2010. Для создания динамически подключаемой библиотеки можно использовать любой инструмент, который вам по душе. Я же для создания библиотеки выбрал CodeGear RAD Studio 2009, язык Delphi( Object Pascal ).

Как же работает DLL Injection ?

Схема работы данного метода проста:

1) поиск и получение дескриптора нужного процесса
2) выделение памяти в процессе и последующая запись пути в DLL`ке по адресу, где произошло выделение памяти
3) создание нового потока в виртуальном пространстве процесса, дескриптор которого был получен.

Начнем с создания DLL.

Как я уже говорил, для этой цели будет использоваться язык Delphi:

Читайте также:  Беспокоят коллекторы что делать по чужому кредиту куда жаловаться

Теперь добавим в DLL некоторые ресурсы, а именно — форму и кнопки для управления:

Сама DLL состоит лишь из нескольких строчек кода, которые будут отображать созданную форму. Также можно удалить все комментарии для более удобного визуального восприятия кода:

Теперь программируем интерфейс формы DLL. На форме есть две кнопки. Первая будет «убивать» родительский процесс( т.е процесс, в виртуальном пространстве которого был создан поток, в котором, в свою очередь, выполняется код DLL ). Вторая — рисовать 10 квадратов размером 25x25px в контексте всех окон приложения, принадлежащих процессу:

Исходный код интерфейсной части можно посмотреть здесь .

Тут все достаточно просто.
Итак, динамическая библиотека написана. Теперь компилируем ее и на выходе получаем скомпилированный файл с расширением «.dll», который можно переименовать для удобства. Я переименую библиотеку в «inj.dll».

Создание DLL завершено.
Осталось лишь скопировать нашу DLL`ку в системную директорию Windows, чтобы любое приложение могло отыскать её лишь по одному имени.

Переходим к разработке инжектора. Идем в Visual Studio и создаем Пустой проект( File->New->Project->Visual C++->General->Empty Project). Вся разработка будет производиться на «чистом» WinApi.

Первым делом создадим простейший визуальный интерфейс: форма, кнопка и текстовое поле. Выглядеть это будет примерно так:

Как видно, это приложение, обладающее минимальным дизайном и простейшим интерфейсом. В нем присутствуют два текстовых поля, предназначенных для ввода имени процесса( или его определенной части ), в который требуется произвести инжектирование DLL и для ввода имени самой DLL. Кнопка, соответственно, запускает процесс инжекта.

Для инжекта DLL в адресное пространство процессов понадобятся следующие WinApi функции:

Итак, обдумаем, как же, собственно организовать «умную» архитектуру приложения, которая была бы понятной и простой.
Я предлагаю начать с обработки щелка по кнопке 🙂

Ок, далее, переходим к реализации функции

которая служит для поиска процесса по его имени:

И, наконец, завершающая процесс инжектирования функция

Полный код инжектора можно посмотреть здесь.

Тестируем работоспособность инжектора:

Сначала инжектимся «сами в себя». При клике на кнопку «Draw» происходит рисование 10 квадратов. При клике на «Crash it!» происходит немедленное завершение «родительского» процесса. Теперь попробуем инжектиться во что-нибудь посерьезнее, например, в браузер Mozilla Firefox. Для этого необходимо поменять лишь имя процесса в первом текстовом поле и нажать на кнопку:

Как видно, инжект успешно удался. Квадраты рисуются во всех окнах, принадлежащих родительскому процессу браузера. При нажатии на кнопку «Crash it!» Mozilla FireFox немедленно закрывается.

Outro

Для чего нам это вообще нужно? Ведь наша основная цель — это взлом( игр, софта ). Так вот в дальнейшем мы, наверняка, будем использовать этот инжектор для внедрения своего кода в чужое адресное пространство. Благодаря этому можно сэкономить немало времени, сил и нервов 🙂

Источник

Поделиться с друзьями
АвтоМотоВики