public class Memory
{
string ProcName;
public Memory(string ProcessName)
{
ProcName = ProcessName.Replace(".exe", "");
}
#region DLL Imports
[DllImport("kernel32.dll")]
private static extern IntPtr OpenProcess(UInt32 dwDesiredAccess, bool bInheritHandle, int dwProcessId);
[DllImport("kernel32.dll")]
private static extern Int32 WriteProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, [In, Out] byte[] buffer, UInt32 size, out IntPtr lpNumberOfBytesWritten);
#endregion
#region Stuff
private IntPtr Open_Memory()
{
if (Process.GetProcessesByName(ProcName).Length != 0)
{
return OpenProcess(0x1F0FFF, true, Process.GetProcessesByName(ProcName)[0].Id);
}
else return (IntPtr)0x0;
}
public void WriteString(int Address, string Text)
{
byte[] Buffer = new ASCIIEncoding().GetBytes(Text);
IntPtr Zero = IntPtr.Zero;
WriteProcessMemory(Open_Memory(), (IntPtr)Address, Buffer, (UInt32)16, out Zero);
}
#endregion
}
WriteProcessMemory(Open_Memory(), (IntPtr)Address, Buffer, (UInt32)16, out Zero);
public void WriteString(int Address, string Text)
{
byte[] Buffer = new ASCIIEncoding().GetBytes(Text);
IntPtr Zero = IntPtr.Zero;
WriteProcessMemory(Open_Memory(), (IntPtr)Address, Buffer, (UInt32)16, out Zero);
}
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.Runtime.InteropServices; using System.Diagnostics;
return OpenProcess(0x1F0FFF, true, Process.GetProcessesByName(ProcName)[0].Id);
return OpenProcess(0x1328D54, true, Process.GetProcessesByName(ProcName)[0].Id);
//Sets player title and text
private void button1_Click(object sender, EventArgs e)
{
Memory TitleText = new Memory(textBox1.Text);
}
private void CSet_Click(object sender, EventArgs e)
{
System.Diagnostics.Process[] myprocesses = System.Diagnostics.Process.GetProcessesByName("iw5m");
if (myprocesses.Length != 0)
{
iw5m.ReadProcess = myprocesses[0];
iw5m.OpenProcess();
int write;
byte[] val1 = { 255 };
byte[] val2 = new ASCIIEncoding().GetBytes(Clantag.Text);
iw5m.WriteProcessMemory((IntPtr)0x1328B33, val1, out write);
iw5m.WriteProcessMemory((IntPtr)0x1328D54, val2, out write);
}
else MessageBox.Show("Error: IW5M must be started first!");
}