Ciao a tutti.
Sto creando un hack per prato fiorito in C# per fare pratica, è da 2 anni che programmo, ma è da poco che ho iniziato a creare hack. So usare la ReadProcessMemory e anche la WriteProcessMemory. Sono riuscito a modificare il tempo, il numero dei fiori, l'altezza e la largezza del gioco, il numero delle caselle trovate, il suono, il segno(?), i tempi migliori in secondi e il nome di chi ha fatto i tempi migliori.
Il problema arriva quando voglio leggere il nome di chi ha fatto i tempi migliori, perchè è una stringa e con ReadProcessMemory non so come leggerla, riesco solo a leggere i valori 4bytes.
Ho provato con questo:
UInt32 ProcID;
IntPtr WindowHandle = FindWindow(null, "Prato fiorito");
GetWindowThreadProcessId(WindowHandle, out ProcID);
IntPtr ProcessHandle = OpenProcess(0x1F0FFF, 1, ProcID);
byte[] buffer = new byte[4];
int bytesread = 4;
//legge il miglior tempo e lo converte in testo(funziona)
ReadProcessMemory(ProcessHandle, (IntPtr)0x10056D4, buffer, 4, out bytesread);
textBox5.Text = BitConverter.ToInt32(buffer, 0).ToString();
//legge il nome di chi ha fatto il miglior tempo esperto ma legge solo una lettera e non tutto il nome
ReadProcessMemory(ProcessHandle, (IntPtr)0x1005758, buffer, 4, out bytesread);
string s = Encoding.UTF8.GetString(buffer);
textBox8.Text = s;
ma legge solo una lettera e non tutto il nome, per esempio se il nome intero è Anonimo mi legge solo A. Come posso fare per leggere tutto il nome?
Ciao e grazie a tutti
Sto creando un hack per prato fiorito in C# per fare pratica, è da 2 anni che programmo, ma è da poco che ho iniziato a creare hack. So usare la ReadProcessMemory e anche la WriteProcessMemory. Sono riuscito a modificare il tempo, il numero dei fiori, l'altezza e la largezza del gioco, il numero delle caselle trovate, il suono, il segno(?), i tempi migliori in secondi e il nome di chi ha fatto i tempi migliori.
Il problema arriva quando voglio leggere il nome di chi ha fatto i tempi migliori, perchè è una stringa e con ReadProcessMemory non so come leggerla, riesco solo a leggere i valori 4bytes.
Ho provato con questo:
UInt32 ProcID;
IntPtr WindowHandle = FindWindow(null, "Prato fiorito");
GetWindowThreadProcessId(WindowHandle, out ProcID);
IntPtr ProcessHandle = OpenProcess(0x1F0FFF, 1, ProcID);
byte[] buffer = new byte[4];
int bytesread = 4;
//legge il miglior tempo e lo converte in testo(funziona)
ReadProcessMemory(ProcessHandle, (IntPtr)0x10056D4, buffer, 4, out bytesread);
textBox5.Text = BitConverter.ToInt32(buffer, 0).ToString();
//legge il nome di chi ha fatto il miglior tempo esperto ma legge solo una lettera e non tutto il nome
ReadProcessMemory(ProcessHandle, (IntPtr)0x1005758, buffer, 4, out bytesread);
string s = Encoding.UTF8.GetString(buffer);
textBox8.Text = s;
ma legge solo una lettera e non tutto il nome, per esempio se il nome intero è Anonimo mi legge solo A. Come posso fare per leggere tutto il nome?
Ciao e grazie a tutti