Advertisement
RieqyNS13

Untitled

Jul 7th, 2015
446
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.49 KB | None | 0 0
  1. using System;
  2. using System.Diagnostics;
  3. using System.Runtime.InteropServices;
  4. using System.Text;
  5. using System.Threading;
  6. using System.Globalization;
  7. class mem {
  8.     //value enum cari dari sini https://msdn.microsoft.com/en-us/library/windows/desktop/ms684880(v=vs.85).aspx
  9.     //[Flags]
  10.     public enum ProcessAccessType : uint
  11.     {
  12.         PROCESS_TERMINATE = (0x0001),
  13.         PROCESS_CREATE_THREAD = (0x0002),
  14.         PROCESS_SET_SESSIONID = (0x0004),
  15.         PROCESS_VM_OPERATION = (0x0008),
  16.         PROCESS_VM_READ = (0x0010), PROCESS_VM_WRITE = (0x0020),
  17.         PROCESS_DUP_HANDLE = (0x0040),
  18.         PROCESS_CREATE_PROCESS = (0x0080),
  19.         PROCESS_SET_QUOTA = (0x0100),
  20.         PROCESS_SET_INFORMATION = (0x0200),
  21.         PROCESS_QUERY_INFORMATION = (0x0400)
  22.     }
  23.  
  24.     //const string pointerrecuk = "033E6E78";
  25.     const uint pointerrecuk = 0x033E6E78;
  26.     const uint pointerrecuk2 = 0x00A1C658;
  27.     const uint offset_pointerrecuk2 = 0x5F8A;
  28.     [DllImport("kernel32.dll")]
  29.     public static extern IntPtr OpenProcess(UInt32 dwDesiredAccess, Int32 bInheritHandle, UInt32 dwProcessId);
  30.  
  31.     [DllImport("kernel32.dll")]
  32.     public static extern Int32 CloseHandle(IntPtr hObject);
  33.  
  34.     [DllImport("kernel32.dll")]
  35.     public static extern Int32 ReadProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, [In, Out] byte[] buffer, UInt32 size, out int lpNumberOfBytesRead);
  36.  
  37.     [DllImport("kernel32.dll")]
  38.     public static extern Int32 WriteProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, [In, Out] byte[] buffer, UInt32 size, out int lpNumberOfBytesWritten);
  39.  
  40.     public static void Main() {
  41.         try {
  42.             bool x = false;
  43.             Process[] proc;
  44.             while(true) {
  45.                 proc = Process.GetProcessesByName("game");
  46.                 if(proc.Length == 0 && !x) {
  47.                     Console.WriteLine("menunggu game.exe dibuka");
  48.                     x = true;
  49.                 }else if(proc.Length > 0) {
  50.                     Console.WriteLine("Opened. pid : "+proc[0].Id);
  51.                     try { Console.WriteLine("BaseAddress : "+proc[0].MainModule.BaseAddress); }catch { }
  52.                     break;
  53.                 }
  54.             }
  55.  
  56.             ProcessAccessType akses = ProcessAccessType.PROCESS_VM_READ | ProcessAccessType.PROCESS_VM_WRITE | ProcessAccessType.PROCESS_VM_OPERATION;
  57.             IntPtr prosesHandle = mem.OpenProcess((uint)akses, 0, (uint)proc[0].Id);
  58.             int bytesRead;
  59.             byte[] buffer = new byte[256];
  60.             //--Untuk pointer 1--//
  61.            
  62.             int tmpAddress = 0;
  63.             int maxhp = 157288192;
  64.             new Thread(() => {
  65.                 while(true) {
  66.                     //mem.ReadProcessMemory(prosesHandle, (IntPtr)decPointer, buffer, 4, out bytesRead);
  67.                     mem.ReadProcessMemory(prosesHandle, (IntPtr)pointerrecuk, buffer, 4, out bytesRead);
  68.                     tmpAddress = BitConverter.ToInt32(buffer,0);
  69.                     //Console.WriteLine(prosesHandle.ToString()+" "+tmpAddress.ToString());
  70.                     if(tmpAddress>0 && tmpAddress<maxhp) {
  71.                         Console.WriteLine(tmpAddress.ToString()+" > "+maxhp.ToString());
  72.                         byte[] cuk = BitConverter.GetBytes(maxhp);
  73.                         mem.WriteProcessMemory(prosesHandle, (IntPtr)pointerrecuk, cuk, (UInt32)cuk.Length, out bytesRead);
  74.                     }
  75.                     Thread.Sleep(250);
  76.                 }
  77.             }).Start();
  78.            
  79.             ///////////
  80.  
  81.             //--Untuk offset 2--//
  82.             /*byte[] nop ={ 0x90, 0x90, 0x90, 0x90, 0x90 };
  83.  
  84.             mem.ReadProcessMemory(prosesHandle, (IntPtr)pointerrecuk2, buffer, 6, out bytesRead);
  85.             uint totalcuk = (uint)BitConverter.ToInt32(buffer, 0)+offset_pointerrecuk2;
  86.             Console.WriteLine(totalcuk.ToString());
  87.             mem.WriteProcessMemory(prosesHandle, (IntPtr)totalcuk, nop, (UInt32)nop.Length, out bytesRead);*/
  88.            
  89.             //------------------//
  90.        
  91.             //mem.CloseHandle(prosesHandle);
  92.         }
  93.         catch(Exception e) {
  94.             Console.WriteLine(e.ToString());
  95.         }
  96.     }
  97.  
  98.    
  99. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement