capo666
Messages postés35Date d'inscriptionjeudi 8 septembre 2005StatutMembreDernière intervention 1 juin 2008
-
27 juil. 2007 à 20:24
capo666
Messages postés35Date d'inscriptionjeudi 8 septembre 2005StatutMembreDernière intervention 1 juin 2008
-
6 août 2007 à 20:51
salut ,
Vous connaisser surement deja l'API Getclassname ! qui permet de récupérer le nom de la classe de la fenetre désirer. Maintenant je me demandais si c'était possible de changer le nom de la classe un genre de setclassname. j'ai fais une recherche sur google et vbfrance mais jai rien trouver de bon. alor si vous avez une solution pour pouvoir changer le classname je susis preneur :D
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 27 juil. 2007 à 20:29
salut,
je pense pas que ce soit possible de changer de classe une fenêtre.
C'est comme si tu faisais une tarte à la fraise, et que tu lui disais "t'eh, change toi en gâteau au chocolat". Impossible. Tu veux un gâteau au chocolat ? Beh faut le faire.
Ta fenêtre, c'est pareil, à toi de créer celle que tu veux.
As-tu un exemple concrêt ? (classe d'origine et d'arrivée ?)
capo666
Messages postés35Date d'inscriptionjeudi 8 septembre 2005StatutMembreDernière intervention 1 juin 2008 27 juil. 2007 à 20:41
Bien en fait je voulais faire un programme qui empecherais les dll injection dans le processus. en changeant la classname par un truc random et changer le nom de la fenetre je me suis dit cool comme sa personne va pouvoir injecter des dll avec un loader.
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 27 juil. 2007 à 22:00
salut,
ouai pas bête, surtout en VB6.
pis même Windows "ne pourrait" pas traiter les messages de ton appli.
en gros faire un code pour geler tes progs. j'aime beaucoup l'idée
transformer le gateau à la fraise en chocolat..., si, c'est possible
(transformer une txtbox en form par exemple)
mais pour getclassname j'ai un gros doute aussi. surtou niveau méthode : çà devient du bas niveau, ce n'est plus de l'accès "consultation". et VB6 n'est pas fait pour...
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 201413 31 juil. 2007 à 13:41
Salut,
Je pense pas que l'on puisse rendre un processus non identifiable via ces fenêtres...
Même si on change le titre de la fenêtre principale, celui qui veut mettre en place une injection se servirat de n'importe quelle autre fenêtre (contrôle).
Et faudrait aussi modifier le nom de l'executable qui est aussi facilement récupérable.
Je pense pas que l'on puisse empècher une injection... sans injecter sois même du code dans les autres processus ! Mais là ça devient la guerre de celui qui va injecter l'autre en premier suffisament pour qu'il ne soit pas en mesure de riposter.
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 201413 2 août 2007 à 21:48
On peut récupérer le texte de n'importe quelle fenêtre (Ou contrôle. La plupart des contrôles ont des handles de fenêtre valides) et récupérer son texte en envoyant un message WM_GETTEXT.
Et il y a différentes techniques d'injection. L'une d'elle injecte du code dans toutes les appli en même temps...
Pourquoi tiens tu as ce qu'aucune injection ne soit possible dans ton processus ?
capo666
Messages postés35Date d'inscriptionjeudi 8 septembre 2005StatutMembreDernière intervention 1 juin 2008 3 août 2007 à 17:27
c'est pour faire un anti cheat pour un vieux jeux qui se nomme Tactical Ops. J'avais remarquer que toute les cheat pour se jeux avait un INI avec une ligne EXE=Tactical ops.exe alor j'avais qui modifiait le nom du exe et en modifiant le nom du exe sa changeait aussi le nom de la fenetre alor il me restait plus que le classname.
Le cheat marchait comme sa: tu l'ouvrait et il attandait que tu ouvre le jeux une fois ouvert il s'injectait automatiquement. alor si je changeait le nom du EXE avant de louvrir, le cheat détectait rien. Mais le prob c'est que les cheater aurais sortit une version avec le classname.
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 3 août 2007 à 21:10
pas sûr mais... çà peut peut-être aider :
Option Explicit
'
Private Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
'
Private Const MON_TITRE As String = "Sans titre -
Bloc-notes"
'
'
Private Sub Form_Load()
Call Shell("notepad.exe", vbMinimizedFocus)
Dim lHwnd As Long
lHwnd = FindWindow(vbNullString, MON_TITRE)
If lHwnd = 0 Then
MsgBox "Titre
non-trouvé!!!"
Else
Call SetWindowText(lHwnd, "!! Simple changement de titre !!")
End If
Unload Me
End Sub
++
PCPT [AFCK]
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
capo666
Messages postés35Date d'inscriptionjeudi 8 septembre 2005StatutMembreDernière intervention 1 juin 2008 4 août 2007 à 00:42
Merci pour la réponse, mais non sa je suis capable de changer le titre de la fenetre, je suis capable de renomer l'applicatiom, mais je ne suis pas capable de changer le Classname de l'application. C'est ce que j'ai expliquer dans mon poste précédent il me manque juste le classname a modifier le reste c'est facile. merci encore de m'aider.
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 201413 6 août 2007 à 12:47
Hé bé malgrés ton explication, je ne suis pas parvenue à comprendre ce que tu voulais faire...
Je suppose que tu joues à ce jeu en réseaux et que tu veux empècher les autres de cheater. Mais dans ce cas, comment modifier leurs jeux ou leur faire executer une application qui empècherat l'injection sur leurs PCs ?
Je pense pas qu'il soit facilement possible de changer le nom de classe d'une fenêtre à l'execution. Pour y parvenir, on pourrait par exemple commencer par désassembler GetClassName, travail probablement long et pénible.
Mais tout bêtement, si tu as le nom de la classe, tu peux peut être simplement essayer de le changer en dur dans l'executable du jeu (Un simple éditeur de texte peut suffire).
Par contre, il faudrat remplacer l'ancien nom par un nom de la même taille (ou faire suivre le nouveau par des zéros), et prier pour que les développeurs n'ai pas mis de protection anti modifs (Genre un hash de l'executable).