Как Сделать Инжектор От МауЬе_Вох

Тема в разделе "Гайды для CrossFire", создана пользователем Katya_99961, 26 дек 2012.

?

Полезный Гайд??

  1. Да

    0 голосов
    0,0%
  2. Очень:DDD

    100,0%
Можно выбрать сразу несколько вариантов.
Статус темы:
Закрыта.
  1. Оффлайн

    Katya_99961 Лейтенант

    На форуме с:
    25 дек 2012
    Сообщения:
    145
    Симпатии:
    918
    Баллы:
    114
    Пол:
    Женский
    Здравствуйте пользователи Rango-hack, сегодня я расскажу как создать Injector dll на C#.
    Поехали.

    1. Создаём проэкт, версия .net framework не важна, кидаем на форму:
    2 лабела, 1 текст бокс с ReadOnly = true, 2 баттона, 1 комбо бокс, 1 OpenFileDialog.

    2. На кнопку "...", для выбора dll, ставим код:
    Код:

    Код: Выделить всё
    openFileDialog1.Filter = "DLL (*.dll)|*.dll" +
    "|All files (*.*)|*.*";
    if (openFileDialog1.ShowDialog() == DialogResult.OK)
    {
    textBox1.Text = openFileDialog1.FileName; //Придаём значение ТекстБокс1 значение пути нашего пути к dll
    }



    3. Теперь заменяем все используемые Referenc-ы на эти:

    Код:

    Код: Выделить всё
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.Diagnostics;
    using System.Runtime.InteropServices;
    using System.Threading;



    4. После

    Код:

    Код: Выделить всё
    public ИмяВашейФормы()
    {
    InitializeComponent();
    }



    Ставим код:
    Код:

    Код: Выделить всё
    [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;
    Int32 LenWrite = strDLLName.Length + 1;
    IntPtr AllocMem = (IntPtr)VirtualAllocEx(hProcess, (IntPtr)null, (uint)LenWrite, 0x1000, 0x40);
    WriteProcessMemory(hProcess, AllocMem, strDLLName, (UIntPtr)LenWrite, out bytesout);
    UIntPtr Injector = (UIntPtr)GetProcAddress( GetModuleHandle("kernel32.dll"), "LoadLibraryA");

    if (Injector == null)
    {
    MessageBox.Show(" Injecto Error! \n ");
    return;
    }
    IntPtr hThread = (IntPtr)CreateRemoteThread(hProcess, (IntPtr)null, 0, Injector, AllocMem, 0, out bytesout);
    if ( hThread == null )
    {
    MessageBox.Show("Thread injection Failed");
    return;
    }
    int Result = WaitForSingleObject(hThread, 10 * 1000);
    if (Result == 0x00000080L || Result == 0x00000102L || Result == 0xFFFFFFFF)
    {
    MessageBox.Show("Thread 2 inject failed");
    if (hThread != null)
    {
    CloseHandle(hThread);
    }
    return;
    }
    Thread.Sleep(1000);
    VirtualFreeEx(hProcess, AllocMem, (UIntPtr)0, 0x8000);
    if (hThread != null)
    {
    CloseHandle(hThread);
    }
    return;
    }



    4. Теперь на эвент "Click" comboBox1
    Поставим код:


    Код: Выделить всё
    comboBox1.Items.Clear();
    foreach (Process clsProcess in Process.GetProcesses())
    {
    comboBox1.Items.Add(clsProcess.ProcessName);
    }



    5. На буттон "Inject", ставим код:
    Код:

    Код: Выделить всё
    String strDLLName = textBox1.Text;
    String strProcessName = comboBox1.SelectedItem.ToString();

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


    Код для Автора:

    Код: Выделить всё
    MessageBox.Show(null, "Автор Odysseus, Инжэктор только для x64 Ситем", "Автор", MessageBoxButtons.OK, MessageBoxIcon.Information);


    Ставьте Симпашки Мне!!!:)C Вами Была МауЬе_Вох
     
    ч1тер нравится это.
  2.  
  3. Оффлайн

    ч1тер Лейтенант

    На форуме с:
    6 мар 2012
    Сообщения:
    1.551
    Симпатии:
    2.094
    Баллы:
    197
    Пол:
    Мужской
    это хорошо но нужны скриншоты или видео для наглядности
     
Статус темы:
Закрыта.

Поделиться этой страницей

Уважаемый пользователь!

Мы обнаружили, что вы блокируете показ рекламы на нашем сайте.

Просим внести его в список исключения или отключить AdBlock.

Наши материалы предоставляются БЕСПЛАТНО и единственным доходом является реклама.

Спасибо за понимание!