| modifier la mémoire d'un autre processus | |
|
|
Auteur | Message |
---|
PHENIXprod Utilisateur confirmé: Rang ****
Messages : 835
| Sujet: modifier la mémoire d'un autre processus Sam 26 Juin 2010 - 17:43 | |
| ben tout est dans le nom. Je me demandais si c'était possible de le faire avec game maker (dll ou gex) |
|
| |
onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: modifier la mémoire d'un autre processus Sam 26 Juin 2010 - 18:04 | |
| etant donné que certains logiciels comme cheat engine permettent de le faire, il est certain que se soit possible en codant une dll. Reste a trouver les fonctions... certainement des trucs de l'api windows
Dernière édition par onilink_ le Sam 22 Juil 2017 - 16:50, édité 1 fois |
|
| |
glcraft Utilisateur confirmé: Rang *****
Messages : 1698 Localisation : Entre l'Espagne, l'Italie, la Suisse, L'allemagne et le RU :P Projet Actuel : Jeu de survie avancé
||--------
| Sujet: Re: modifier la mémoire d'un autre processus Dim 27 Juin 2010 - 2:38 | |
| je comprends pas, c'est quoi modifier la memoire d'un processus, et c'est quoi son utilité ? |
|
| |
PHENIXprod Utilisateur confirmé: Rang ****
Messages : 835
| Sujet: Re: modifier la mémoire d'un autre processus Dim 27 Juin 2010 - 10:47 | |
| onilink_: Je vais essayer avec ça. Mais le probleme c'est que j'ai encore jamais fait de dll Gabin 47: Ben... faire un trainer par exemple |
|
| |
onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: modifier la mémoire d'un autre processus Dim 27 Juin 2010 - 12:08 | |
| y a un tuto sur les dll au cbna, c'est pas compliqué, par contre faut que tu connaisse deja les fonction en c ou c++ pour acceder a la memoire des programmes, qui je pense doit etre facilement trouvable en cherchant sur google. En tout cas si t'as une quelconque question sur la mise en place d'une dll n'hesite pas a demander =p |
|
| |
PHENIXprod Utilisateur confirmé: Rang ****
Messages : 835
| Sujet: Re: modifier la mémoire d'un autre processus Dim 27 Juin 2010 - 12:16 | |
| Merci, finalement je me débrouille. Par contre tu ne saurais pas comment trouver le handle d'un processus? Tout ce que je trouve je ne comprends pas :/ |
|
| |
onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: modifier la mémoire d'un autre processus Dim 27 Juin 2010 - 13:05 | |
| |
|
| |
PHENIXprod Utilisateur confirmé: Rang ****
Messages : 835
| Sujet: Re: modifier la mémoire d'un autre processus Dim 27 Juin 2010 - 14:19 | |
| Ca a l'air super, si j'arrivais à résoudre ça: Pourquoi une fonction qui fonctionne dans mouse released ne fonctionne pas avec key released? Pourquoi ma punaise de fonction Aaa ne fonctionne pas?Ca fait 1h que je suis dessus et je comprends pas ! |
|
| |
onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: modifier la mémoire d'un autre processus Dim 27 Juin 2010 - 14:47 | |
| game maker ne reconnait que les double et les char* deja, ensuite... |
|
| |
PHENIXprod Utilisateur confirmé: Rang ****
Messages : 835
| Sujet: Re: modifier la mémoire d'un autre processus Dim 27 Juin 2010 - 15:06 | |
| ah d'accord... ça m'a bien fait tourner en bourrique^^ |
|
| |
onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: modifier la mémoire d'un autre processus Dim 27 Juin 2010 - 15:26 | |
| lol, tu mettras la source de ta dll après ? ça m'interresse =p |
|
| |
PHENIXprod Utilisateur confirmé: Rang ****
Messages : 835
| Sujet: Re: modifier la mémoire d'un autre processus Lun 28 Juin 2010 - 20:21 | |
| Si tu veux... mais ça trouve que le PID pour l'instant j'ai un peu beaucoup de mal enfait^^ je poste la source et tu la corrige? Edit: le code qui marche pas :/ - Code:
-
DLLIMPORT double Readmem (char *szProcName)//nom du prog (ex explorer.exe) { DWORD dwPID = 0;// PID du process PROCESSENTRY32 pe = {sizeof(PROCESSENTRY32)};//euh... HANDLE hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);// ça c'est le handle du process long RHANDLE;// le handle en long long RESULT = -1;//le resultat de la lecture
if(hSnap != INVALID_HANDLE_VALUE) { if(Process32First(hSnap, &pe)) { do { if(strcmpi(pe.szExeFile, szProcName) == 0) { dwPID = pe.th32ProcessID;// là on a le PID RHANDLE = hSnap;// et là normalement le handle :/ break; } } while(Process32Next(hSnap, &pe)); } CloseHandle(hSnap); } //return dwPID; //return RHANDLE; ReadProcessMemory(RHANDLE,12935756,&RESULT,4,NULL);// et là ça lit mais ça marche pas return RESULT; } |
|
| |
onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: modifier la mémoire d'un autre processus Lun 28 Juin 2010 - 21:06 | |
| |
|
| |
PHENIXprod Utilisateur confirmé: Rang ****
Messages : 835
| Sujet: Re: modifier la mémoire d'un autre processus Lun 28 Juin 2010 - 21:56 | |
| Wahou le 2eme il aide beaucoup mais le 1er j'ai rien capté ^^ pi le 3eme deja vu En tout cas merci ! Edit: m'en vais de ce pas modifier ma source ReEdit: La voilà mais ça foire encore à la fin et je comprends pas... Le code C: - Code:
-
DLLIMPORT double FonctionEssai (char *szProcName,int adressemem) { PROCESSENTRY32 pe = {sizeof(PROCESSENTRY32)}; HANDLE hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); DWORD PID = 0;//PID de szProcName HANDLE hTemp = NULL;//Handle de szProcName long RESULT = -1;//Le résultat de la lecture
if(hSnap != INVALID_HANDLE_VALUE) { if(Process32First(hSnap, &pe)) { do { if(strcmpi(pe.szExeFile, szProcName) == 0) { PID = pe.th32ProcessID;//La on a notre PID break; } } while(Process32Next(hSnap, &pe)); } CloseHandle(hSnap); } else {MessageBox(NULL,"Le processus n'est pas valide!",NULL,MB_OK| MB_ICONERROR);} hTemp = OpenProcess(PROCESS_ALL_ACCESS, 0, PID);//Et la notre handle vers szProcName if(hTemp != NULL) { ReadProcessMemory(hTemp,(LPCVOID)adressemem,&RESULT,4,NULL);//On lit la valeur à adressemem et on le met dans RESULT } else {MessageBox(NULL,"Le Handle n'a pas ete ouvert!",NULL,MB_OK| MB_ICONERROR);} return RESULT; } Le gmk: Create: - Code:
-
global.f_read = external_define('MyDLL.dll','FonctionEssai',dll_stdcall,ty_real,2,ty_string,ty_real); mess = 0; Left released: - Code:
-
mess = external_call(global.f_read,"vlc.exe",12935700); //12935700 est l'addresse mémoire en décimal du volume de vlc trouvé avec Cheat engine... de tout façon ça devrais faire tout sauf laisser le -1 d'erreur... Draw: - Code:
-
draw_sprite(sprite0,-1,x,y); draw_text(10,10,string(mess)); |
|
| |
Invité Invité
| Sujet: reponse Dim 15 Aoû 2010 - 12:42 | |
| Si tu souhaite modifier la priorité d'un processus d'un exécutable à son démarrage, tu peut utiliser ces commandes DOS : - Code:
-
START "" /LOW "chemin_de_l'application" : pour lancer l'application en basse priorité START "" /BELOWNORMAL "chemin_de_l'application" : en priorité inférieure à la normale START "" /NORMAL "chemin_de_l'application" : en priorité normale START "" /ABOVENORMAL "chemin_de_l'application" : en priorité supérieure à la normale START "" /HIGH "chemin_de_l'application" : en haute priorité START "" /REALTIME "chemin_de_l'application" : en temps réel Tu remplace chemin_de_l'application par le chemin de l'exécutable (ATTENTION ! Ce sont des commandes dos et pas du GML). Pour lancer cette commande DOS, soit tu utilise la DLL pour utiliser ces commandes, ou bien tu sauvegarde ces commandes dans un fichier au format BAT dans le repertoire de ton jeu (execute.bat par exemple) et tu lance cette commande avec la fonction de GM execute_shell("execute.bat",""). |
|
| |
Contenu sponsorisé
| Sujet: Re: modifier la mémoire d'un autre processus | |
| |
|
| |
| modifier la mémoire d'un autre processus | |
|