Перейти к содержанию

Ошибки при компиляции трейнера


Рекомендуемые сообщения

Добрый день, учусь делать трейнер вот по этому уроку от

а вот сам код

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Diagnostics;
using System.Runtime.InteropServices;
namespace WindowsFormsApplication3
{
public partial class Form1 : Form
{
[DllImport("kernel32.dll")]
public static extern IntPtr OpenProcess(int dwDesiredAsses, 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, int nSize, out IntPtr lpNumberOfBytesWritten);
public int pID;
public Form1()
{
InitializeComponent();
GetProcess("TD.wrp");
WriteByte();
}
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;
MessageBox.Show("332211");
return;
}
}
}
return;
}
public void WriteByte()
{
var ammoadress = 07679644;
byte[] ammobytes = { 0xCA, 0x0D, 0x51, 0x3F };
var size = 4;
var dummy = new UintpTR();
var handle = OpenProcess(0x001F0FFF, false, pID);
WriteProcessMemory((IntPtr)handle, (IntPtr)ammoadress, ammobytes, size, out dummy);
CloseHandle(handle);
}
}
}

ну вот где и ошибка

image.png

Ссылка на комментарий
Поделиться на другие сайты

Тебе блин даже по русски пишет студия - невозможно привести 5й аргумент к типу System.IntPtr.

Приводи вручную.

чет я совсем запутался =(

где и как и че привести?

Ссылка на комментарий
Поделиться на другие сайты

/*---------------------------------------------------------------------------*/

Надо внимательнее писать код. Буковка "u" означает "unsigned", с английского

- беззнаковый. IntPtr - Integer Pointer - знаковый указатель, UIntPtr -

Unsigned Integer Pointer - беззнаковый указатель. WriteProcessMemory от тебя

требует IntPtr, а ты перепутал буковку. Если не уверен, то всякий раз сверяйся

с [pinvoke.net]. В частности, там я и брал все описания функций для своих

видеоуроков.

PS: 1001-е сообщение на форуме, уии!

/*---------------------------------------------------------------------------*/

  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.