V podstate chcem vytvoriť program, ktorý bude spolupracovať už s existujúcim programom, ktorý som nevytvoril ja.
p.s. vygooglil by som si to aj sám, kebyže viem, čo doň napísať
asi nieco ako "win32 code injection"Birky22 napísal: p.s. vygooglil by som si to aj sám, kebyže viem, čo doň napísať
Kód: Vybrať všetko
http://code.google.com/p/zynga-poker-bot/
Kód: Vybrať všetko
[DllImport("kernel32.dll")]
static extern IntPtr OpenProcess(uint dwDesiredAccess, [MarshalAs(UnmanagedType.Bool)] bool bInheritHandle, int dwProcessId);
[DllImport("kernel32.dll",SetLastError = true)]
static extern bool WriteProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress,byte [] lpBuffer, uint nSize, out in lpNumberOfBytesWritten);
[DllImport("kernel32.dll", SetLastError=true)] // zvrie pripojenie
static extern bool CloseHandle(IntPtr hHandle);
[DllImport("kernel32.dll", SetLastError = true, PreserveSig = true)]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool ReadProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, byte[] lpBuffer, uint nSize, out int lpNumberOfBytesRead);
ma to jednu chybicku pokial si pamatam windows pouziva memory randomizer, ktory zaruci ze program nealokuje pre niaku premennu rovnake miesto v priradenej pameti pri kazdom spusteni takze ich budes musiet stale znovu hladatharrison314 napísal: Alebo citanim pamete programu, z Win Api puzijes tieto funkcie
pomocou programu ArtMoney si najdes adresi hodnot, ktore chces sledovat, a len ich budes v cykle citat.Kód: Vybrať všetko
[DllImport("kernel32.dll")] static extern IntPtr OpenProcess(uint dwDesiredAccess, [MarshalAs(UnmanagedType.Bool)] bool bInheritHandle, int dwProcessId); [DllImport("kernel32.dll",SetLastError = true)] static extern bool WriteProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress,byte [] lpBuffer, uint nSize, out in lpNumberOfBytesWritten); [DllImport("kernel32.dll", SetLastError=true)] // zvrie pripojenie static extern bool CloseHandle(IntPtr hHandle); [DllImport("kernel32.dll", SetLastError = true, PreserveSig = true)] [return: MarshalAs(UnmanagedType.Bool)] public static extern bool ReadProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, byte[] lpBuffer, uint nSize, out int lpNumberOfBytesRead);