Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Diagnostics;
- using System.Runtime.InteropServices;
- using System.Text;
- using System.Threading;
- using System.Globalization;
- class mem {
- //value enum cari dari sini https://msdn.microsoft.com/en-us/library/windows/desktop/ms684880(v=vs.85).aspx
- //[Flags]
- public enum ProcessAccessType : uint
- {
- PROCESS_TERMINATE = (0x0001),
- PROCESS_CREATE_THREAD = (0x0002),
- PROCESS_SET_SESSIONID = (0x0004),
- PROCESS_VM_OPERATION = (0x0008),
- PROCESS_VM_READ = (0x0010), PROCESS_VM_WRITE = (0x0020),
- PROCESS_DUP_HANDLE = (0x0040),
- PROCESS_CREATE_PROCESS = (0x0080),
- PROCESS_SET_QUOTA = (0x0100),
- PROCESS_SET_INFORMATION = (0x0200),
- PROCESS_QUERY_INFORMATION = (0x0400)
- }
- //const string pointerrecuk = "033E6E78";
- const uint pointerrecuk = 0x033E6E78;
- const uint pointerrecuk2 = 0x00A1C658;
- const uint offset_pointerrecuk2 = 0x5F8A;
- [DllImport("kernel32.dll")]
- public static extern IntPtr OpenProcess(UInt32 dwDesiredAccess, Int32 bInheritHandle, UInt32 dwProcessId);
- [DllImport("kernel32.dll")]
- public static extern Int32 CloseHandle(IntPtr hObject);
- [DllImport("kernel32.dll")]
- public static extern Int32 ReadProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, [In, Out] byte[] buffer, UInt32 size, out int lpNumberOfBytesRead);
- [DllImport("kernel32.dll")]
- public static extern Int32 WriteProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, [In, Out] byte[] buffer, UInt32 size, out int lpNumberOfBytesWritten);
- public static void Main() {
- try {
- bool x = false;
- Process[] proc;
- while(true) {
- proc = Process.GetProcessesByName("game");
- if(proc.Length == 0 && !x) {
- Console.WriteLine("menunggu game.exe dibuka");
- x = true;
- }else if(proc.Length > 0) {
- Console.WriteLine("Opened. pid : "+proc[0].Id);
- try { Console.WriteLine("BaseAddress : "+proc[0].MainModule.BaseAddress); }catch { }
- break;
- }
- }
- ProcessAccessType akses = ProcessAccessType.PROCESS_VM_READ | ProcessAccessType.PROCESS_VM_WRITE | ProcessAccessType.PROCESS_VM_OPERATION;
- IntPtr prosesHandle = mem.OpenProcess((uint)akses, 0, (uint)proc[0].Id);
- int bytesRead;
- byte[] buffer = new byte[256];
- //--Untuk pointer 1--//
- int tmpAddress = 0;
- int maxhp = 157288192;
- new Thread(() => {
- while(true) {
- //mem.ReadProcessMemory(prosesHandle, (IntPtr)decPointer, buffer, 4, out bytesRead);
- mem.ReadProcessMemory(prosesHandle, (IntPtr)pointerrecuk, buffer, 4, out bytesRead);
- tmpAddress = BitConverter.ToInt32(buffer,0);
- //Console.WriteLine(prosesHandle.ToString()+" "+tmpAddress.ToString());
- if(tmpAddress>0 && tmpAddress<maxhp) {
- Console.WriteLine(tmpAddress.ToString()+" > "+maxhp.ToString());
- byte[] cuk = BitConverter.GetBytes(maxhp);
- mem.WriteProcessMemory(prosesHandle, (IntPtr)pointerrecuk, cuk, (UInt32)cuk.Length, out bytesRead);
- }
- Thread.Sleep(250);
- }
- }).Start();
- ///////////
- //--Untuk offset 2--//
- /*byte[] nop ={ 0x90, 0x90, 0x90, 0x90, 0x90 };
- mem.ReadProcessMemory(prosesHandle, (IntPtr)pointerrecuk2, buffer, 6, out bytesRead);
- uint totalcuk = (uint)BitConverter.ToInt32(buffer, 0)+offset_pointerrecuk2;
- Console.WriteLine(totalcuk.ToString());
- mem.WriteProcessMemory(prosesHandle, (IntPtr)totalcuk, nop, (UInt32)nop.Length, out bytesRead);*/
- //------------------//
- //mem.CloseHandle(prosesHandle);
- }
- catch(Exception e) {
- Console.WriteLine(e.ToString());
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement