BitFlash777
-
Постов
7 -
Зарегистрирован
-
Посещение
Тип контента
Профили
Форумы
Загрузки
Блоги
Сообщения, опубликованные BitFlash777
-
-
Проблему решил спасибо!
-
/*---------------------------------------------------------------------------*/
Привет!
Меня смущают size=1 и buffer = new byte[6]. Ты читаешь DWORD - это 4 байта,
так что size и buffer должны быть по 4 байта.
/*---------------------------------------------------------------------------*/
Спасибо
/*---------------------------------------------------------------------------*/
вылетает игра при вызове вот этой функции (
public void WriteByte()
{
var adress = 0x00977A60;
var ofsets = new byte[] { 0x34 };
int ammoadress = adress + ofsets[0];
byte[] ammobytes = { 0xB3, 0x15 };
var size = 2;
var dummy = new UIntPtr();
var handle = OpenProcess(0x001F0FFF, false, pID);
WriteProcessMemory(handle, (IntPtr)ammoadress, ammobytes, size, out dummy);
CloseHandle(handle);
} -
все время возвращает 192 почему?
вот сам код
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 UIntPtr lpNumberOfBytesWritten);
[DllImport("kernel32.dll", SetLastError = true)]
static extern bool ReadProcessMemory(
IntPtr hProcess,
IntPtr lpBaseAddress,
[Out] byte[] lpBuffer,
int dwSize,
out int lpNumberOfBytesRead);
public int pID;
public Form1()
{
InitializeComponent();
GetProcess("ToyDefense2.wrp");
}
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;
var adress = 0x00977A60;
var ofsets = new byte[] { 0x34 };
ReadProcess(adress, ofsets);
}
}
}
return;
}
public void WriteByte()
{
var ammoadress = 0x056D0EF4;
byte[] ammobytes = { 0x0F, 0x27 };
var size = 2;
var dummy = new UIntPtr();
var handle = OpenProcess(0x001F0FFF, false, pID);
WriteProcessMemory(handle, (IntPtr)ammoadress, ammobytes, size, out dummy);
CloseHandle(handle);
}
public void ReadProcess(int baseadress, byte[] offset)
{
byte[] buffer = new byte[6];
int size = 1;
int bytespread;
var handle = OpenProcess(0x001F0FFF, false, pID);
ReadProcessMemory(handle, (IntPtr)baseadress, buffer, size, out bytespread);
for (int i = 0; i < offset.Length; i++ )
{
baseadress = BitConverter.ToInt32(buffer, 0);
baseadress += offset[i];
ReadProcessMemory(handle, (IntPtr)baseadress, buffer, size, out bytespread);
}
var result = BitConverter.ToInt32(buffer, 0);
CloseHandle(handle);
label1.Text = Convert.ToString(result);
}
private void button1_Click(object sender, EventArgs e)
{
WriteByte();
}
public void label1_Click(object sender, EventArgs e)
{
}
}
}using System;
-
Все спасибо большое! решил, был не внимательный
-
Тебе блин даже по русски пишет студия - невозможно привести 5й аргумент к типу System.IntPtr.
Приводи вручную.
чет я совсем запутался =(
где и как и че привести?
-
Добрый день, учусь делать трейнер вот по этому уроку от
а вот сам код
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);
}
}
}ну вот где и ошибка
Технология Microsoft XNA (C#)
in Низкоуровневое программирование
Опубликовано
CLOSE