Загрузка...

Мир читов, Пишем наш собственный инжектор C#

Тема в разделе C# создана пользователем Inmutef 27 дек 2021. 2243 просмотра

Загрузка...
  1. Inmutef
    Inmutef Автор темы 27 дек 2021 5 19 дек 2021
    Надеюсь вы все видели инжектор типа Extreme Injector v3
    Так вот к чему я виду
    Я спалил его что он C#
    И решил сделать свой инжектор:wottroll:
    ===========================================
    Суть вам известна

    Он просто инжектит DLL в процесс

    ***ВАЖНО : Как так я ещё тот кодер на C# там ху***какая-то он может по сто раз инжектить(

    Понали:animedance:

    ===========================================
    1.Как обычно открываем Visual Studio :pepeHacker:
    [IMG]
    2.Создаём проект С# WinForms под названием
    My-Injector

    [IMG]
    [IMG]
    3.Наинаем кодить
    Добавляем эти Using'и

    using System.Diagnostics;
    using System.Runtime.InteropServices;
    using System.Threading;


    Делаем всё как на этом скриншоте
    [IMG]
    Теперь 2 раза кликаем по кнопки Enter
    И пишем этот код

    openFileDialog1.Filter = "DLL|*.dll";
    if (openFileDialog1.ShowDialog() == DialogResult.Cancel)
    return;


    Теперь на самый верх до Public Form1
    Пишем этот код

    [DllImport("kernel32")]
    public static extern IntPtr CreateRemoteThread(
    IntPtr hProcess,
    IntPtr lpThreadAttributes,
    uint dwStackSize,
    UIntPtr lpStartAddress,
    IntPtr lpParameter,
    uint dwCreationFlags,
    out IntPtr lpThreadId
    );

    [DllImport("kernel32.dll")]
    public static extern IntPtr OpenProcess(
    UInt32 dwDesiredAccess,
    Int32 bInheritHandle,
    Int32 dwProcessId
    );

    [DllImport("kernel32.dll")]
    public static extern Int32 CloseHandle(
    IntPtr hObject
    );

    [DllImport("kernel32.dll", SetLastError = true, ExactSpelling = true)]
    static extern bool VirtualFreeEx(
    IntPtr hProcess,
    IntPtr lpAddress,
    UIntPtr dwSize,
    uint dwFreeType
    );

    [DllImport("kernel32.dll", CharSet = CharSet.Ansi, ExactSpelling = true)]
    public static extern UIntPtr GetProcAddress(
    IntPtr hModule,
    string procName
    );

    [DllImport("kernel32.dll", SetLastError = true, ExactSpelling = true)]
    static extern IntPtr VirtualAllocEx(
    IntPtr hProcess,
    IntPtr lpAddress,
    uint dwSize,
    uint flAllocationType,
    uint flProtect
    );

    [DllImport("kernel32.dll")]
    static extern bool WriteProcessMemory(
    IntPtr hProcess,
    IntPtr lpBaseAddress,
    string lpBuffer,
    UIntPtr nSize,
    out IntPtr lpNumberOfBytesWritten
    );

    [DllImport("kernel32.dll", CharSet = CharSet.Auto)]
    public static extern IntPtr GetModuleHandle(
    string lpModuleName
    );

    [DllImport("kernel32", SetLastError = true, ExactSpelling = true)]
    internal static extern Int32 WaitForSingleObject(
    IntPtr handle,
    Int32 milliseconds
    );

    public Int32 GetProcessId(String proc)
    {
    Process[] ProcList;
    ProcList = Process.GetProcessesByName(proc);
    return ProcList[0].Id;
    }
    public void InjectDLL(IntPtr hProcess, String strDLLName)
    {
    IntPtr bytesout;

    // Length of string containing the DLL file name +1 byte padding
    Int32 LenWrite = strDLLName.Length + 1;
    // Allocate memory within the virtual address space of the target process
    IntPtr AllocMem = (IntPtr)VirtualAllocEx(hProcess, (IntPtr)null, (uint)LenWrite, 0x1000, 0x40); //allocation pour WriteProcessMemory

    // Write DLL file name to allocated memory in target process
    WriteProcessMemory(hProcess, AllocMem, strDLLName, (UIntPtr)LenWrite, out bytesout);
    // Function pointer "Injector"
    UIntPtr Injector = (UIntPtr)GetProcAddress(GetModuleHandle("kernel32.dll"), "LoadLibraryA");

    if (Injector == null)
    {
    MessageBox.Show(" Injector Error! \n ");
    // return failed
    return;
    }

    // Create thread in target process, and store handle in hThread
    IntPtr hThread = (IntPtr)CreateRemoteThread(hProcess, (IntPtr)null, 0, Injector, AllocMem, 0, out bytesout);
    // Make sure thread handle is valid
    if (hThread == null)
    {
    //incorrect thread handle ... return failed
    MessageBox.Show(" hThread [ 1 ] Error! \n ");
    return;
    }
    // Time-out is 10 seconds...
    int Result = WaitForSingleObject(hThread, 10 * 1000);
    // Check whether thread timed out...
    if (Result == 0x00000080L || Result == 0x00000102L || Result == 0xFFFFFFFF)
    {
    /* Thread timed out... */
    MessageBox.Show(" hThread [ 2 ] Error! \n ");
    // Make sure thread handle is valid before closing... prevents crashes.
    if (hThread != null)
    {
    //Close thread in target process
    CloseHandle(hThread);
    }
    return;
    }
    // Sleep thread for 1 second
    Thread.Sleep(1000);
    // Clear up allocated space ( Allocmem )
    VirtualFreeEx(hProcess, AllocMem, (UIntPtr)0, 0x8000);
    // Make sure thread handle is valid before closing... prevents crashes.
    if (hThread != null)
    {
    //Close thread in target process
    CloseHandle(hThread);
    }
    // return succeeded
    return;
    }


    Теперь 2 раза кликаем по кнопки Inject

    И пишем

    String strDLLName = @openFileDialog1.FileName;
    String strProcessName = textBox1.Text;

    Int32 ProcID = GetProcessId(strProcessName);
    if (ProcID >= 0)
    {
    IntPtr hProcess = (IntPtr)OpenProcess(0x1F0FFF, 1, ProcID);
    if (hProcess == null)
    {
    MessageBox.Show("OpenProcess() Failed!");
    return;
    }
    else
    InjectDLL(hProcess, strDLLName);


    4.Проверяем
    Жмём по этой кнопки
    [IMG]

    Помнете мы с прошлого урока копировали чит для консоли)
    Выбираем его
    [IMG]
    В поле для ввода вводим cmd без .exe
    [IMG]
    Жмём Inject и видим
    [IMG]

    Вуаля

    *** Я КОНЕШНО ЕЁ ДОРОБОТАЛ И ВОТ ЧТО ПОЛУЧИЛОСЬ
    Скачать саму программу Скачать
    Скачать исходный код Скачать

    ===========================================
    Всем пока :animeyes2:

    С наступающим :pepesnow:
     
  2. Yotic
    Yotic 27 дек 2021 Ебашу на C# всё что захотите(Разноцветное) 43 13 янв 2021
    Инфы и так полно, но спасибо за подробность гайда.
    Пиздить и выйоубивайотся что сделал я - не буду(Как некоторые)
     
  3. shad0w
    shad0w 27 дек 2021 205 15 окт 2021
    годно
     
  4. Lol_ya_nn
    Lol_ya_nn 28 дек 2021 . 1032 11 окт 2020
    ну можно без костылей на C++
     
    1. кекич_неактив2490487
      Lol_ya_nn, а можно не открывать ротик, это раздел с#
  5. Dekej
    Dekej 8 мар 2022 0 8 мар 2022
    А как скачать исходный код?
     
  6. kawa_kovalskiy
    Как скачать этот сурс?
     
  7. zann3okin
    zann3okin 25 ноя 2022 zelenka.guru/threads/5259428/ пожилой крипт 1071 4 ноя 2018
    дотнетом разве что в трусы тругой струей заинжектиться можно
     
    25 ноя 2022 Изменено
  8. Iggoorruuxx
    Iggoorruuxx 25 фев 2023 0 25 фев 2023
    [IMG]кайф сделайте новое
     
    1. Dead__Artis
      Iggoorruuxx, гений который создал проект на Net Core
Top