C# Aob Scanner Opkod bulucu

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Uzman Üye
Katılım
6 Mar 2016
Mesajlar
187
Tepki puanı
24
Ödüller
7
10 HİZMET YILI
Merhaba arkadaşlar bugün sizlere aob scanner kodlarını vericem oyun her güncellendiğinde tekrar hilesini bulmak istemiyorsanız bunu deneyebilirsiniz.

PHP:
using System;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace aobScanner
{
    class Program
    {
        [DllImport("kernel32.dll", SetLastError = true)]
        static extern bool ReadProcessMemory(
       IntPtr hProcess,
       IntPtr lpBaseAddress,
       byte[] lpBuffer,
       int dwSize,
        int lpNumberOfBytesRead);

        [DllImport("kernel32.dll", SetLastError = true)]
        public static extern IntPtr OpenProcess(
     ProcessAccessFlags processAccess,
     bool bInheritHandle,
     int processId
);
        public static IntPtr OpenProcess(Process proc, ProcessAccessFlags flags)
        {
            return OpenProcess(flags, false, proc.Id);
        }

        [Flags]
        public enum ProcessAccessFlags : uint
        {
            All = 0x001F0FFF,
            Terminate = 0x00000001,
            CreateThread = 0x00000002,
            VirtualMemoryOperation = 0x00000008,
            VirtualMemoryRead = 0x00000010,
            VirtualMemoryWrite = 0x00000020,
            DuplicateHandle = 0x00000040,
            CreateProcess = 0x000000080,
            SetQuota = 0x00000100,
            SetInformation = 0x00000200,
            QueryInformation = 0x00000400,
            QueryLimitedInformation = 0x00001000,
            Synchronize = 0x00100000
        }

        public static bool byteqeualshit(byte[] a1, byte[] b1)
        {
            // If not same length, done
            if (a1.Length != b1.Length)
            {
                return false;
            }

            // If they are the same object, done
            if (object.ReferenceEquals(a1, b1))
            {
                return true;
            }

            // Loop all values and compare
            for (int i = 0; i < a1.Length; i++)
            {
                if (a1[i] != b1[i])
                {
                    return false;
                }
            }

            // If we got here, equal
            return true;
        }
        public static byte[] ToByteArray(String HexString)
        {
            int NumberChars = HexString.Length;
            byte[] bytes = new byte[NumberChars / 2];
            for (int i = 0; i < NumberChars; i += 2)
            {
                bytes[i / 2] = Convert.ToByte(HexString.Substring(i, 2), 16);
            }
            return bytes;
        }
        static byte[] GetOp(string hex)
        {
            return ToByteArray(hex.Replace(" ", ""));
        }
        [STAThread]
        static void Main(string[] args)
        {
         
            Process p = Process.GetProcessesByName("oyunadı")[0];
            Console.Title = "Oyunismi Opcode Updater";
            Console.WriteLine("Opcode updater");
            Console.WriteLine("Oyun Bulundu");
            Console.WriteLine("Last Sig updates: Versiyon");
            proc = OpenProcess(p, ProcessAccessFlags.VirtualMemoryRead);
            Console.WriteLine("Oyun Handle: 0x" + proc.ToString("x"));
            Console.WriteLine("Oyun Base Address: 0x" + p.MainModule.BaseAddress.ToInt64().ToString("x"));
            Console.WriteLine("Scan / Dump Size: 0x" + p.MainModule.ModuleMemorySize.ToString("x"));

           
            Console.WriteLine("Trying to update opcodes, can take up to 5min to update all.");
   
            DataTable hacktable = new DataTable();

            hacktable.Columns.Add("bytes", typeof(byte[]));
            hacktable.Columns.Add("Hack", typeof(string));


            hacktable.Rows.Add(GetOp("75 08 85 C9 "), "Hile Adı");
            hacktable.Rows.Add(GetOp("88 87 69010000"), "Hileadı");
            hacktable.Rows.Add(GetOp("sigi bu kısma yazıyorsunuz"), "Hileadı");

 
           
           
            Console.WriteLine("Total Opcodes to update: " + hacktable.Rows.Count.ToString());
            Stopwatch stopwatch = new Stopwatch();         
            ProcessModule targetModule = p.MainModule;
            baseaddress = targetModule.BaseAddress.ToInt64();
            int moduleSize = targetModule.ModuleMemorySize;
            byte[] buffer;
            stopwatch.Start();
            string fulltxt = "";
            string full2 = "";
            int count = 0;
            for (int x = 0;  x < moduleSize; x++)
            {
             
                if(x > 0x2a0000)
                {
                    stopwatch.Stop();
                    Console.WriteLine("Secs it took to update: {0}", stopwatch.Elapsed.Seconds);
                    Console.WriteLine("Region to scan end reached");
                    break;
                }
                foreach(DataRow row in hacktable.Rows)
                {
                    byte[] scan = row.Field<byte[]>(0);
                    string hack = row.Field<string>(1);
                    buffer = new byte[scan.Length];
                    ReadProcessMemory(proc, (IntPtr)baseaddress + x, buffer, scan.Length, 0);
                    if (byteqeualshit(buffer, scan))
                    {
                        count++;
                        fulltxt += hack;
                        Console.Write("Found " + hack + " at: ");
                        Console.ForegroundColor = ConsoleColor.Green;
                        full2 += "\r\noyun.exe+" + x.ToString("x").ToUpper() + " - " + hack;
                        Console.WriteLine("oyun.exe+" +  x.ToString("x").ToUpper());
                        Console.ResetColor();
                    }
                }
             
            }
            foreach(DataRow row in hacktable.Rows)
            {
                string hack = row.Field<string>(1);
                if (!fulltxt.Contains(hack))
                {
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("Unable to update " + hack + ", go update sig :)");
                    Console.ResetColor();
                }
                 
            }
            Console.ForegroundColor = ConsoleColor.Green;
            Console.WriteLine("Opcodes updated successfully: " + count);
            Console.WriteLine("Do you want to copy everythng to clipboard? (Y for yes, any other key for no") ;
            ConsoleKeyInfo ff = Console.ReadKey();
            if(ff.KeyChar == 'y')
            {
                Clipboard.SetText(full2);
                Console.WriteLine("\nClipboard text set");
            }
            Console.WriteLine("Press any key to exit!");
            Console.ReadKey();
        }
        static long baseaddress = 0;
   
        static IntPtr proc;

   
    }
}
 
No System Safe
Banlı Üye
Katılım
27 Ara 2015
Mesajlar
551
Tepki puanı
114
Yaş
26
10 HİZMET YILI
kardeşim tamda pointer finder kodluyodum yararlı konu paylaşmışsın eline sağlık

yanlız bunu videolu anlatırsan daha eğitici olur vede forumda popülariten artar
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üst