neku
Codeur roumain
En cherchant un peu j'ai trouvé un faille dans Cerbere
Je dirais même pas que c'est une faille mais une porte d'église
Alors je m'explique :
Voici donc la méthode que j'utilisais pour rechercher la fenêtre de Cs.
Mais le problème qui est flagrand c'est que si on modifie le ClassName de la fenetre CS (ici : Valve001) et que l'on met "Valve002" par exemple.
CS va planter au démarrage si Cerbere est lancé, mais si on créé une fênetre vide avec pour ClassName "Valve001", il trouvera la fenêtre qu'il pense être celle de Cs mais qui est en réalité la fenêtre fictive et donc les informations sur la dll de cerbere et client.dll de Cs seraient totalement fausée :/
Mais bon je l'ai corrigé en sécurisant l'API GetCurrentProcessId et en préférent cette API au deux ligne plus haut
Je dirais même pas que c'est une faille mais une porte d'église
Alors je m'explique :
Code:
HWND HL = SecureApi.s_FindWindow("Valve001", NULL);
DWORD ProcessID;
SecureApi.s_GetWindowThreadProcessId(HL, &ProcessID);
Mais le problème qui est flagrand c'est que si on modifie le ClassName de la fenetre CS (ici : Valve001) et que l'on met "Valve002" par exemple.
CS va planter au démarrage si Cerbere est lancé, mais si on créé une fênetre vide avec pour ClassName "Valve001", il trouvera la fenêtre qu'il pense être celle de Cs mais qui est en réalité la fenêtre fictive et donc les informations sur la dll de cerbere et client.dll de Cs seraient totalement fausée :/
Mais bon je l'ai corrigé en sécurisant l'API GetCurrentProcessId et en préférent cette API au deux ligne plus haut