Создание ManualMap инжектора |4| C#

ROAD TO THE LEGEND
Забаненный
Забаненный
Статус
Оффлайн
Регистрация
7 Фев 2018
Сообщения
2,224
Реакции
714
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Гайд #3

В прошлом гайде я рассказывал как сделать форму с выбором игр. Сегодня вам расскажу как заставить работать кнопку "Play", или попросту говоря заинжектить длл.

Приступим.

1) Перекидываем файлы из архива в папку с проектом.

Пожалуйста, авторизуйтесь для просмотра ссылки.


2) ПКМ по решению -> add -> existing item, и выбираете файлы, которые вы ранее распаковали.

3) Добавляем эти строчки в самом верху.
Код:
Expand Collapse Copy
using ManualMapInjection.Injection;
using System.IO;
using System.Diagnostics;
using System.Net;


2 раза кликаем по кнопке "Play", вставляем данный код (Это как пример, меняйте под себя)


Код:
Expand Collapse Copy
WebClient wb = new WebClient();
            if (bunifuCustomLabel1.Text == "Counter Strike : Global Offensive")
            {
                string mainpath = "C:\\Windows\\dll.dll"; //Куда будет сохранятся длл, можно использовать любое имя длл
                wb.DownloadFile("http://путь", mainpath); //Ваш путь к скачке длл
                var name = "csgo"; //инжект в процесс csgo.exe
                var target = Process.GetProcessesByName(name).FirstOrDefault();
                var path = mainpath;
                var file = File.ReadAllBytes(path);

                //Если нет длл
                if (!File.Exists(path))
                {
                    MessageBox.Show("Длл не найдена или была не скачана");
                    return;
                }

                //Инжект
                var injector = new ManualMapInjector(target) { AsyncInjection = true };
                label2.Text = $"hmodule = 0x{injector.Inject(file).ToInt64():x8}";

                if (System.IO.File.Exists(mainpath)) //Провряем есть ли длл
                {
                    System.IO.File.Delete(mainpath); //Удаляем длл
                }
            }
            else if (bunifuCustomLabel1.Text == "PUBG")
            {
                string mainpath = "C:\\Windows\\dll.dll"; //Куда будет сохранятся длл, можно использовать любое имя длл
                wb.DownloadFile("http://путь", mainpath); //Ваш путь к скачке длл
                var name = "pubg"; //инжект в процесс csgo.exe
                var target = Process.GetProcessesByName(name).FirstOrDefault();
                var path = mainpath;
                var file = File.ReadAllBytes(path);

                //Если нет длл
                if (!File.Exists(path))
                {
                    MessageBox.Show("Длл не найдена или была не скачана");
                    return;
                }

                //Инжект
                var injector = new ManualMapInjector(target) { AsyncInjection = true };
                label2.Text = $"hmodule = 0x{injector.Inject(file).ToInt64():x8}";

                if (System.IO.File.Exists(mainpath)) //Провряем есть ли длл
                {
                    System.IO.File.Delete(mainpath); //Удаляем длл
                }
            }
            else if (bunifuCustomLabel1.Text == "Dota 2")
            {
                string mainpath = "C:\\Windows\\dll.dll"; //Куда будет сохранятся длл, можно использовать любое имя длл
                wb.DownloadFile("http://путь", mainpath); //Ваш путь к скачке длл
                var name = "dota"; //инжект в процесс csgo.exe
                var target = Process.GetProcessesByName(name).FirstOrDefault();
                var path = mainpath;
                var file = File.ReadAllBytes(path);

                //Если нет длл
                if (!File.Exists(path))
                {
                    MessageBox.Show("Длл не найдена или была не скачана");
                    return;
                }

                //Инжект
                var injector = new ManualMapInjector(target) { AsyncInjection = true };
                label2.Text = $"hmodule = 0x{injector.Inject(file).ToInt64():x8}";

                if (System.IO.File.Exists(mainpath)) //Провряем есть ли длл
                {
                    System.IO.File.Delete(mainpath); //Удаляем длл
                }
            }

4) Создаём обычный label, в свойствах, в категории "Design" (Name) меняем на "label2", отлично. Меняем Visible на false.

На самом деле это всё. Казалось бы! Но нет. Сохранять на диск с виндой он будет только в том случае, если, если и ещё раз если, наша программа была открыта от имени администратора.
Давайте сделаем проверку.

В "public НАЗВАНИЕ_ПЕРВОЙ_ЗАГРУЖАЕМОЙ_ФОРМЫ(В МОЁМ СЛУЧАЕ Form1)()"
вставляем данный код
(выглядит это как "public Form1()")

Код:
Expand Collapse Copy
bool isElevated;
            WindowsIdentity identity = WindowsIdentity.GetCurrent();
            WindowsPrincipal principal = new WindowsPrincipal(identity);
            isElevated = principal.IsInRole(WindowsBuiltInRole.Administrator);

            if (isElevated == false)
            {
                MessageBox.Show("Запустите файл от имени администратора!"); // не обязательно
                Environment.Exit(0);
            }

На этом месте у вас появятся ошибки. Устраним их. Добавляем на самый верх
Код:
Expand Collapse Copy
using System.Security.Principal;
Проверяем! При обычном запуске - выскакивает месага, при запуске от имени администратора - всё хорошо заходит.




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

Код:
Expand Collapse Copy
e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
            e.Graphics.Clear(panel1.Parent.BackColor);
            Control control = panel1;
            int radius = 30;
            using (System.Drawing.Drawing2D.GraphicsPath path = new System.Drawing.Drawing2D.GraphicsPath())
            {
                path.AddLine(radius, 0, control.Width - radius, 0);
                path.AddArc(control.Width - radius, 0, radius, radius, 270, 90);
                path.AddLine(control.Width, radius, control.Width, control.Height - radius);
                path.AddArc(control.Width - radius, control.Height - radius, radius, radius, 0, 90);
                path.AddLine(control.Width - radius, control.Height, radius, control.Height);
                path.AddArc(0, control.Height - radius, radius, radius, 90, 90);
                path.AddLine(0, control.Height - radius, 0, radius);
                path.AddArc(0, 0, radius, radius, 180, 90);
                using (SolidBrush brush = new SolidBrush(control.BackColor))
                {
                    e.Graphics.FillPath(brush, path);
                }
            }

На этом всё. Думаю сс не нужен
 
На моем форуме все ведется намного лучше. Темы хуевые. Никто не будет (в здравом уме), что-то делать по этим "гайдам".
Ну и пиздуй на свой форум, хули.
 
Код:
Expand Collapse Copy
string mainpath = "C:\\Windows\\dll.dll"; //Куда будет сохранятся длл, можно использовать любое имя длл
                wb.DownloadFile("http://путь", mainpath); //Ваш путь к скачке длл
Лучше сделать byte[] dll = wb.DownloadData("url");
и ммапить именно его, нахуй нужен этот файл
 
И раз он опенсоурс, ебани репозиторий на гитхабе. Ибо ядиск это убого:sweatsmile:
 
Основная цель гайда была заставить работать кнопку play. Работает? Да.
помоги решить проблему)
Серьезность Код Описание Проект Файл Строка Состояние подавления
Ошибка CS0308 Неуниверсальный метод "Marshal.PtrToStructure(IntPtr, object)" нельзя использовать с аргументами типа. BearHack C:\Users\Олег\source\repos\BearHack\BearHack\Imports.cs 158 Активный
WKMg1xMdIHY.jpg
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
помоги решить проблему)
Серьезность Код Описание Проект Файл Строка Состояние подавления
Ошибка CS0308 Неуниверсальный метод "Marshal.PtrToStructure(IntPtr, object)" нельзя использовать с аргументами типа. BearHack C:\Users\Олег\source\repos\BearHack\BearHack\Imports.cs 158 Активный
WKMg1xMdIHY.jpg
На самый верх Import.cs
using System.Collections.Generic.
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
В чем проблема?
di-XVNJ.png
 
Последнее редактирование:
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Назад
Сверху Снизу