Всем привет сегодня я вас научу делать трейнер как обычный но более упрашеный )
Создаем новый проект называем как хотим )
переходим к коду потключаем оператор using
Код HTML:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;
using System.Runtime.InteropServices;
в public partial class потключаем это :
Код HTML:
[DllImport("kernel32.dll")]
public static extern IntPtr OpenProcess(int dwDesiredAcess, bool bInheritHandle, int dwProcessId);
[DllImport("kernel32.dll", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool CloseHandle(IntPtr hObject);
[DllImport("kernel32.dll", SetLastError = true)]
static extern bool WriteProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, byte[] lpBuffer, uint nSize, out UIntPtr lpNumberOfBytesWritten);
[DllImport("user32.dll", CharSet = CharSet.Auto)]
static extern IntPtr SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
[DllImportAttribute("user32.dll")]
public static extern bool ReleseCapture();
далее пишем
Код HTML:
public int pID;
в публик форм
Код HTML:
GetProcess("Game");// можно писать любой другой процесс но мы вить делаем чит на warface ))
WriteBytes();
теперь делаем getprocess
Код HTML:
public void GetProcess(string name)
{
var pList = Process.GetProcesses();
if (pList.Count() != 0)
{
foreach (var process in pList)
{
if (process.ProcessName == name)
{
pID = process.Id;
return;
}
}
}
return;
}
теперь делаем writebyte это у нас будет обход пишем его после гет процесса
Код HTML:
public void WriteBytes()
{
var recoilAddress = 0xFD9101;//адреc
byte[] recoilBytes = { 0xEB, 0xD4 }; //байты
var size = 2;
var hack = new UIntPtr();
var handle = OpenProcess(0x001F0FFF, false, pID);
WriteProcessMemory(handle, (IntPtr)recoilAddress, recoilBytes, (uint)size, out hack);
CloseHandle(handle);
}
а принцепе это все как делать на чебокс да индентично вот пример:
Код HTML:
if (checkBox1.Checked)
{
var otda4aAddress = 0xA04E96;
byte[] otda4aBytes = { 0x90, 0x90, 0x90, 0x90, 0x90 };
var size = 5;
var otda4a = new UIntPtr();
var handle = OpenProcess(0x001F0FFF, false, pID);
WriteProcessMemory(handle, (IntPtr)otda4aAddress, otda4aBytes, (uint)size, out otda4a);
CloseHandle(handle);
}
else
{
var otda4aAddress = 0xA04E96;
byte[] otda4aBytes = { 0xE8, 0x35, 0x29, 0xB9, 0xFF };
var size = 5;
var otda4a = new UIntPtr();
var handle = OpenProcess(0x001F0FFF, false, pID);
WriteProcessMemory(handle, (IntPtr)otda4aAddress, otda4aBytes, (uint)size, out otda4a);
CloseHandle(handle);
}
чтоб функции коректно работали изменяйте у них название
otda4aAddress меняем например на lolAddress
otda4aBytes меняем например на lolBytes
otda4a меняем например lol
size - в сайзе пишем скоко байтов используется