Lire le contenu des variables dans la ram

cs_zizouth Messages postés 12 Date d'inscription jeudi 3 juin 2004 Statut Membre Dernière intervention 18 décembre 2007 - 26 juin 2006 à 10:08
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 - 27 juin 2006 à 10:39
Bonjours a tous,

Voila je gere des serveurs Counter Strike pour un portail trés fréquenté en Tunisie, mon probleme c'est la triche (le cheat). Vu que la plupart des anti-cheats sur le net sont completement  périmés je souhaitereais developper mon propre anticheat. Le truc sa serais de rechercher dans la ram les cheats lancés puis de banir du portail le joueurs qui les utilises.

j'en ai deja creer un qui recherche dans les processus le nom cheats ( exemple : wallhack.exe) et qui banni du portail les joueurs utilisants des cheats.
Je pense que vous avez compris que si on change le nom du cheat ( exemple : wallhack1.exe) le logiciel deviens completement inopérant.

S'il vous plais si vous avez une idée de comment  rechercher dans la ram , à la maniere d'un antivirus, un code etc.?. qui correspondrais par exemple a une variable de cheats postez ici.

Merci

6 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
26 juin 2006 à 11:31
Faudrait hooker OpenProcess(), ce qui éviterait de savoir le nom de qlq processus que ce soit mais je pense qu'il te faudrait faire cela en C.

ciao...
BruNews, MVP VC++
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
26 juin 2006 à 11:59
Salut,


Post sur le même sujet apparement :


http://www.csharpfr.com/infomsg_API-HOOK-OPENPROCESS_632310.aspx


Des anti-cheat télé ici.


Voici un code en Delphi qui localise un processus par son nom et essaie de l'arrête :


procedure TfrmMain.btnKillNotepadClick(Sender: TObject);

var

  //Info sur un processus

  uProcessInfo: TProcessEntry32;

  hHandle: THandle;

begin

  //Il faut indiqué la taille de la structure dans la structure avant de l'utiliser

  uProcessInfo.dwSize:= SizeOf(TProcessEntry32);

  //Création d'un snapshot des processus en cours d'excution

  hHandle:= CreateToolhelp32Snapshot(TH32CS_SNAPALL, 0);

  //Récupéation des infos du premier processus snapshoté

  Process32First(hHandle, uProcessInfo);

  //On boucle sur les processus

  repeat

    //Si c'est notre homme

    if CompareText(uProcessInfo.szExeFile, 'notepad.exe') = 0 then

    begin

      //On demande un handle permettant de le supprimer

      hHandle:= OpenProcess(PROCESS_ALL_ACCESS, False, uProcessInfo.th32ProcessID);

      //On lui dit chut, avec le code d'erreur 0

      TerminateProcess(hHandle, 0);

      Break;

    end;

  until not Process32Next(hHandle, uProcessInfo);

end;


C'est plus facile que le hook, faisable en VB6, mais c'est moins propre.


(Et je sens que BruNews vat me frapper sauvagement pour fuite de mémoire par rapport au snapshot !)
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
26 juin 2006 à 12:17
Fuite mémoire, bah on est sur vbfrance donc...

Moi et les snapshots...
LISTE PROCESSUS PAR API NATIVE (WIN32)
http://www.cppfrance.com/code.aspx?id=17658

ciao...
BruNews, MVP VC++
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
26 juin 2006 à 13:39
Code équivalent en VB6.




Donc faudrait un petit à la fin de sa KillProcessus :


Call CloseHandle(hSnapshot)


si je ne m'abuse.


J'ai pas trops compris sa sauce pour ce qui est des privilèges... Il ajuste un niveau de privilège ou quoi ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_zizouth Messages postés 12 Date d'inscription jeudi 3 juin 2004 Statut Membre Dernière intervention 18 décembre 2007
27 juin 2006 à 07:52
Merci pour vos reponse!

Comme je vous ai dis les codes que vous me pesentez ne sont pas bon car, si l'on change le nom de l'exe (cheats.exe --> cheatzizou.exe) dans la liste des processus on aura cheatzizou.exe donc cette methode de recherche dans les processus n'est pas bonne. Par contre j'ai trouver une source (Killer les fenetres visibles et invisibles ) http://www.vbfrance.com/article.aspx?ID=1700 en VB et celle ci cherche les fenetres avec leur nom, meme si l'on change le nom de l'executable, le nom des fenetre  ne change pas.
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
27 juin 2006 à 10:39
Le hook de OpenProcess de BruNews est très différent du parcourt du nom des processus.


Dans ton cas, il faut  que tu répertorie le nom des fenêtre de cheat.


Dans le sien, il bloque l'accès de tous les processus à l'espace
mémoire de CS, à ce que j'ai compris. Les cheat, peu importe leur nom,
ne sont plus capable d'interagir avec le processus de CS.


M'enfin, si le killage à partir de nom de fenêtre suffit, tant mieux : c'est nettement plus simple.
0
Rejoignez-nous