cs_azerty25
Messages postés1114Date d'inscriptionjeudi 19 décembre 2002StatutMembreDernière intervention 6 mai 2007
-
28 déc. 2003 à 17:48
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 2006
-
25 avril 2004 à 18:41
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
cs_Linuss
Messages postés176Date d'inscriptionmardi 7 octobre 2003StatutMembreDernière intervention 9 mai 2008 25 avril 2004 à 18:24
Vous sauriez où puis-je trouver MSDN ?
cs_azerty25
Messages postés1114Date d'inscriptionjeudi 19 décembre 2002StatutMembreDernière intervention 6 mai 2007 27 févr. 2004 à 19:18
Ah le voici ce code, je ne l'ai pas retrouvé celui que j'ai eu sur le MSDN mais sa a l'air d'etre le meme si mes souvenirs sont bons ;)
surfzoid
Messages postés463Date d'inscriptionvendredi 15 août 2003StatutMembreDernière intervention21 avril 2010 27 févr. 2004 à 19:10
pour ce qui est de l os g trouvé ca sur vbfrance
pour trouvez la version de windows:
(a placez dans un module et jme souvien pas du coder mais merci a lui car je luse tres souvent)
Private Declare Function GetVersionExA Lib "kernel32" (lpVersionInformation As OSVERSIONINFO) As Long
Private Type OSVERSIONINFO
dwOSVersionInfoSize As Long
dwMajorVersion As Long
dwMinorVersion As Long
dwBuildNumber As Long
dwPlatformId As Long
szCSDVersion As String * 128
End Type
Public Enum Enum_OperatingPlatform
Platform_Windows_32 = 0
Platform_Windows_95_98_ME = 1
Platform_Windows_NT_2K_XP = 2
End Enum
Public Function OperatingPlatform() As Enum_OperatingPlatform
Dim lpVersionInformation As OSVERSIONINFO
lpVersionInformation.dwOSVersionInfoSize = Len(lpVersionInformation)
Call GetVersionExA(lpVersionInformation)
OperatingPlatform = lpVersionInformation.dwPlatformId
End Function
cs_azerty25
Messages postés1114Date d'inscriptionjeudi 19 décembre 2002StatutMembreDernière intervention 6 mai 2007 26 févr. 2004 à 17:46
scelw, pour répondre à ta tes conneries, c'est utile de savoir quel est le system client car par exemple moi qui est fait un shell, j'ai eu besoin de le déclarer dans windows comme shell par défaut. Ds XP, c'est dans la base de registre alors que sous 9x et NT, c'est dans le fichier system.ini. Par cette explication, tu comprendra aussi que ton histoire de repérage de fichier et totalement nulle puisque déja imprécise quand à l'OS détecté (et oui, t'auri essayé avec le fichier system.ini t'aurai pus déduire que c'était un NT ou un 98 alors que sa aurai plus etre un Me)
Les patchs ne veulent strictement rien dire aussi, certai sont a la fois pour windows 98 et 2000 (exemple ceux pour internet explorer)
Quand a ta commande winver, c'est bien beau mais chez moi il n'est pas indiqué clairement quel OS c'est mais le numero de version, donc c'est déja foutu pour ta bidouille de récupération de label qui est en plus indigne d'un bon programmeur.
Et ce numero de version, est récupérable par API, ce que j'ai dit plus haut, et c'est beaucoup plus simple, précis et efficace que lire des fichiers ou récuperer des labels (je vous la met quand je retrouve ;))
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 200621 26 févr. 2004 à 16:55
scelw, le prob de l'OS n'est peut-être pas important, quoique... de toute, pour ma part je suis sur un hook en C qui résout apparemment les problèmes que tu soulevais toi même dans ton message du 07/01.
Mais, bon, ici c du VB. Donc, l'histoire des timers, c vrai, g testé, qu'ils ne se comportent pas de la même manière suivant les machines. Donc, au moins, il faudrait les régler en fonction de la vitesse du proc. Pour ça, il y a des sources (à base de dll sur le site). (Il y a un autre moyen de tester la vitesse CPU sans DLL mais c en lisant dans la base de registre mais ce n'est pas valable pour tout les systèmes.)
Quant à tester la présence ou non d'un répertoire soi-disant propre à un OS, c hyper fragile. G même réussi sans le vouloir, juste en faisant une mise à jour, à me retrouver avec des dossiers soi-disant typiques XP sur une machine en Win 98 SE. Donc ...
Bon, de toute, les meilleurs keyloggers ne sont pas écrits en VB mais ça n'empêche pas d'étudier la question.
Cordialement
Canis Lupus
scelw
Messages postés117Date d'inscriptionmercredi 3 septembre 2003StatutMembreDernière intervention17 février 2007 26 févr. 2004 à 16:02
excusez moi, g posté 3 fois de suite parce que vbfrance buggait et donc g pas vu...
si les admins pouvaient suprimmer deux de mes posts ça serait assez cool pour la lisibilité de cette board...
scelw
Messages postés117Date d'inscriptionmercredi 3 septembre 2003StatutMembreDernière intervention17 février 2007 26 févr. 2004 à 15:57
Je ne comprends pas à quoi peut servir le fait de connaître l'OS pour un keylogger mais bon...
Plutôt que de vous embêter avec une fonction pas bien définie et apparemment peu efficace, vous pouvez tout simplement tester l'existence de certains dossiers et certains fichiers dans l'arborescence. Chaque version de Windows (win9x, 200, NT, XP) a des particularités, des fichiers et des dossiers qui lui sont propres. A partir de là, vous pouvez facilement et rapidement déduire la version de l'OS.
Sinon, il doit y avoir des clefs dans la base de registre qui donnent ce genre d'information (nom de l'OS, version, Patchs installés, etc).
Enfin, avec la commande "winver" dans le shell (ou par Exécuter), on peut avoir la version de windows. Suffit plus qu'à trouver une méthode pour lire le label qui retourne la réponse (je sais pas faire mais ça doit être possible)...
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 200621 26 févr. 2004 à 09:18
ces 2 lignes n'en font qu'une bien sûr dans la barre d'adresse.
cs_azerty25
Messages postés1114Date d'inscriptionjeudi 19 décembre 2002StatutMembreDernière intervention 6 mai 2007 25 févr. 2004 à 18:05
Il y a une doc tres precise sur la msdn online a propos de sa, les différentes valeurs des la funtion et des différents OS correspondant, mais je ne sais plus éxactement l'adresse
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 200621 25 févr. 2004 à 15:45
Salut
mdr surfzoid !
Je rappelle que le source situé "ou il y a marqué "télécharger le Zip" (en bleu)" n'est que celui de yannn auquel g rajouté des trucs.
Maintenant, pour le reste, j'arrive, patience.
Quoique, pour détecter l'OS c simple :
Type OSVERSIONINFO
dwOSVersionInfoSize As Long
dwMajorVersion As Long
dwMinorVersion As Long
dwBuildNumber As Long
dwPlatformId As Long
szCSDVersion As String * 128
wSPMajor As Integer
End Type
Declare Function GetVersionEx _
Lib "kernel32" Alias "GetVersionExA" _
( _
lpVersionInformation As OSVERSIONINFO _
) As Long
Function Win_Ver() As String
Dim myOS As OSVERSIONINFO
myOS.dwOSVersionInfoSize = 148
GetVersionEx myOS
Win_Ver = myOS.dwPlatformId
End Function
Ca te renvoie "1" pour Win 98 ou "2" pour Win XP.
surfzoid
Messages postés463Date d'inscriptionvendredi 15 août 2003StatutMembreDernière intervention21 avril 2010 25 févr. 2004 à 13:27
CanisLupus si tu cherche tjrs ta source utilise le lien en haut de cette page ou il y a marqué "télécharger le Zip" (en bleu)
LOL
pcpunch
Messages postés1243Date d'inscriptionmardi 7 mai 2002StatutMembreDernière intervention18 février 20195 27 janv. 2004 à 13:05
J'utilise l'api :GetAsyncKeyState et l'api: SetTimer !!!
Ps: g rencontré ce probléme au debut du dev de mon keylogger!!!
rj4
Messages postés5Date d'inscriptiondimanche 13 avril 2003StatutMembreDernière intervention18 avril 2004 11 janv. 2004 à 11:20
Super vos commentaire. vraiment...
Merci a tous ; )
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 200621 7 janv. 2004 à 14:32
Tout à fait OK avec toi Jojo.
Jouer avec le timer c bien mais le hic c que même si 1/1000 s c pareil partout il y a des différences suivant les machines.
A mon boulot, comme on change les machines tous les 4 ans, il y a +sieurs générations de processeurs et d'OS. G donc pu tester et le key ne se comporte pas de la même manière au niveau capture des touches.
Il y a peut être une solution consistant à détecter le type de proc et d'OS pour régler le timer et d'autres choses en fonction. Voire, détecter aussi la résolution d'écran pour régler la zone curseur.
Ces trucs-là, je sais les faire, je les posterai +tard (quand j'aurai retrouvé mon source).
@+
scelw
Messages postés117Date d'inscriptionmercredi 3 septembre 2003StatutMembreDernière intervention17 février 2007 7 janv. 2004 à 13:54
Ah une remarque kan même : je viens de faire un petit test avec ce keylogger et je le sème vraiment très facilement ! c'est à dire que dès que j'écris un peu vite (même pas comme un forcené, juste un peu plus que la vitesse "je-découvre-comment-marche-un-clavier"), le keylogger log une touche sur deux. Les résultats sont même parfois pire : deux ou trois lettres sautent, etc. Donc pour avoir un aperçu de ce qu'a taper l'utilisateur que l'on met sous keylogger... c'est pas très pratique ! donc voilà : fodrait peut-être jouer avec les timers ou modifier le moteur principal de reconnaissance des touches... Ou changer de langage ! Le C est, bien sûr, bcp plus performant (il peut même l'être trop et logger dix fois la touche dès qu'on en enfonce une.)
JOjo
scelw
Messages postés117Date d'inscriptionmercredi 3 septembre 2003StatutMembreDernière intervention17 février 2007 31 déc. 2003 à 15:12
Bonne année ! ouaaah ! le délire ! j'arrive à écraser une papillote contre un mur avec le front (je suis musclé du cou) !
Jojo29118
scelw
Messages postés117Date d'inscriptionmercredi 3 septembre 2003StatutMembreDernière intervention17 février 2007 31 déc. 2003 à 15:07
Oupps ! Je suis vraiment camé les boyz ! Je rectifie : Bravo à Yann et CanisLupus ! (attention c bientôt la pleine lune mec)
scelw
Messages postés117Date d'inscriptionmercredi 3 septembre 2003StatutMembreDernière intervention17 février 2007 31 déc. 2003 à 15:01
Je viens de lire cette source : félicitations, elle est bien commentée, bien structurée. Du beau travail donc bravo à Yann et à azerty25 !
scelw
Messages postés117Date d'inscriptionmercredi 3 septembre 2003StatutMembreDernière intervention17 février 2007 30 déc. 2003 à 13:01
Oupps ! J'avais pas lu ton commentaire azerty25 ! dslé, j'avais pas vu que tu parlais déjà de passer par une appli autorisée.
et effectivement, on peut aussi utiliser le tunneling, technique qui consiste à empaqueter des données dans un protocole autorisé ou plus discret.
scelw
Messages postés117Date d'inscriptionmercredi 3 septembre 2003StatutMembreDernière intervention17 février 2007 30 déc. 2003 à 12:58
Pour ce qui est de bypasser les firewalls, il existe plusieurs méthodes : passer par la base de registre (et modifier la page de démarrage d'ie par exemple, que tu peux rediriger sur un site à toi avec un script php), détourner un processus autorisé par le firewall (en général iexplorer est tjrs autorisé) mais bon, cette technique est plutôt à réaliser avec du C (le VB ne se prête pas trop à ce genre de manoeuvre). De plus cette technique nécessite de bonnes connaissances en programmation système (que je n'ai d'ailleurs pas) mais si ça t'intéresse, je peux t'envoyer une liste de docs qui expliquent tout ça (mail moi à jojo29118@hotmail.com). tu peux aussi te renseigner sur le site Admin-ReZo (dès qu'il sera de nouveau accessible). Enfin, tu peux t'intéresser à des programmes simples et destinés uniquement à bypasser les firewalls (comme leaktest ou d'autres que tu retrouveras sur Admin-ReZo). Voilà. Autre méthode : tuer le firewall momentanément (le temps d'envoyer tes données) et le relancer ensuite. Pour cela, tu peux essayer de tuer l'application directement, via d'autres applications ayant un plus haut niveau d'autorisation ou en effectuant un buffer overflow sur le firewall lui-même (méthode brutale et ardue mais tjrs efficace). Tu peux également essayer de créer un déni de service spécialisé sur le firewall mais là, ça risque d'être remarqué par la personne qui utilise le pc. Bref, les techniques ne manquent pas, si tu es intéressé, je te réinvite à me mailer.
Cordialement,
Jojo29118
cs_azerty25
Messages postés1114Date d'inscriptionjeudi 19 décembre 2002StatutMembreDernière intervention 6 mai 2007 30 déc. 2003 à 08:00
Salut
En fait, je t'ai dit sa par rapport aux alertes que donne les firewalls, certains donnent une alerte en disant le nom et montrant l'icone uniquement, si l'utilisateur ne vois rien, il clique OUI et croira que c'est bien IE qui se connecte. Mais c'est vrai que c'est un peu de la bidouille et que tout les firewalls n'aggissent pas pareil. La solution ultime pour contourner les firewalls n'éxiste pas, à par comme je l'ai déja vu dans un (connu), envoyer les packets à travers une autre application qui serait déja authorisée (par exemple IE) et comme sa, on ne voit rien du tout à par du traffic sur IE.
cs_yannn
Messages postés130Date d'inscriptionmercredi 4 septembre 2002StatutMembreDernière intervention 5 janvier 2009 28 déc. 2003 à 21:18
Je n'ai pas encore regarder ce que tu as fait ... mais je te remercie de l'interet que tu portes a mon petit keylogger !!!
Pour ce qui est de la communication, j'ai fait une mise a jour de mon keylogger qui utilise le moyen FTP ... si ca peut te donner des idées ...
Adresse :
http://www.vbfrance.com/code.aspx?ID=18986
Passe un bon premier de l'an ... et surtout une super fete du 31 !!!!
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 200621 28 déc. 2003 à 18:44
AZERTY25
Je ne suis pas OK avec toi, tu peux mettre un titre d'application reconnu (si tu y arrive car VB l'interdit) ou changer le nom de l'EXE, mon firewall n'est pas dupe donc je suppose que les autres vont le stopper aussi.
Dans une entreprise (comme la mienne), winsock suffit car le firewall n'agit que pour les connexions WEB. Les serveurs MAIL ne sont protégés que de l'extérieur. De l'intérieur, on fait ce qu'on veut.
G essayé de changer le port (25) par défaut de winsock et ça ne marche pas.
Si tu peux m'éclairer la dessus, je suis preneur.
Cordialement
cs_azerty25
Messages postés1114Date d'inscriptionjeudi 19 décembre 2002StatutMembreDernière intervention 6 mai 2007 28 déc. 2003 à 17:48
Je n'ai pas compris ton histoire de firewall personel et winsock, pourrai tu expliquer ? je l'ai compris dans le sens ou le prog serai alors affiché par le firewall, mais si tu met un titre à l'application compilée style Internet Explorer ainsi que la même icone, sa passe, ou tu peut même essayer de désactiver les firewalls mais c plus chaud !! ;)
25 avril 2004 à 18:41
25 avril 2004 à 18:24
27 févr. 2004 à 19:18
27 févr. 2004 à 19:10
pour trouvez la version de windows:
(a placez dans un module et jme souvien pas du coder mais merci a lui car je luse tres souvent)
Private Declare Function GetVersionExA Lib "kernel32" (lpVersionInformation As OSVERSIONINFO) As Long
Private Type OSVERSIONINFO
dwOSVersionInfoSize As Long
dwMajorVersion As Long
dwMinorVersion As Long
dwBuildNumber As Long
dwPlatformId As Long
szCSDVersion As String * 128
End Type
Public Enum Enum_OperatingPlatform
Platform_Windows_32 = 0
Platform_Windows_95_98_ME = 1
Platform_Windows_NT_2K_XP = 2
End Enum
Public Function OperatingPlatform() As Enum_OperatingPlatform
Dim lpVersionInformation As OSVERSIONINFO
lpVersionInformation.dwOSVersionInfoSize = Len(lpVersionInformation)
Call GetVersionExA(lpVersionInformation)
OperatingPlatform = lpVersionInformation.dwPlatformId
End Function
'form
'Select Case OperatingPlatform
'windows32
'Case Enum_OperatingPlatform.Platform_Windows_32
'me
'Case Enum_OperatingPlatform.Platform_Windows_95_98_ME
'Shell ("rundll32.exe user.exe,exitwindows")
'xp
'Case Enum_OperatingPlatform.Platform_Windows_NT_2K_XP:
'Shell "shutdown -r -t 0"
'End Select
Voila je croi k c tout
26 févr. 2004 à 17:46
Les patchs ne veulent strictement rien dire aussi, certai sont a la fois pour windows 98 et 2000 (exemple ceux pour internet explorer)
Quand a ta commande winver, c'est bien beau mais chez moi il n'est pas indiqué clairement quel OS c'est mais le numero de version, donc c'est déja foutu pour ta bidouille de récupération de label qui est en plus indigne d'un bon programmeur.
Et ce numero de version, est récupérable par API, ce que j'ai dit plus haut, et c'est beaucoup plus simple, précis et efficace que lire des fichiers ou récuperer des labels (je vous la met quand je retrouve ;))
26 févr. 2004 à 16:55
Mais, bon, ici c du VB. Donc, l'histoire des timers, c vrai, g testé, qu'ils ne se comportent pas de la même manière suivant les machines. Donc, au moins, il faudrait les régler en fonction de la vitesse du proc. Pour ça, il y a des sources (à base de dll sur le site). (Il y a un autre moyen de tester la vitesse CPU sans DLL mais c en lisant dans la base de registre mais ce n'est pas valable pour tout les systèmes.)
Quant à tester la présence ou non d'un répertoire soi-disant propre à un OS, c hyper fragile. G même réussi sans le vouloir, juste en faisant une mise à jour, à me retrouver avec des dossiers soi-disant typiques XP sur une machine en Win 98 SE. Donc ...
Bon, de toute, les meilleurs keyloggers ne sont pas écrits en VB mais ça n'empêche pas d'étudier la question.
Cordialement
Canis Lupus
26 févr. 2004 à 16:02
si les admins pouvaient suprimmer deux de mes posts ça serait assez cool pour la lisibilité de cette board...
26 févr. 2004 à 15:57
Plutôt que de vous embêter avec une fonction pas bien définie et apparemment peu efficace, vous pouvez tout simplement tester l'existence de certains dossiers et certains fichiers dans l'arborescence. Chaque version de Windows (win9x, 200, NT, XP) a des particularités, des fichiers et des dossiers qui lui sont propres. A partir de là, vous pouvez facilement et rapidement déduire la version de l'OS.
Sinon, il doit y avoir des clefs dans la base de registre qui donnent ce genre d'information (nom de l'OS, version, Patchs installés, etc).
Enfin, avec la commande "winver" dans le shell (ou par Exécuter), on peut avoir la version de windows. Suffit plus qu'à trouver une méthode pour lire le label qui retourne la réponse (je sais pas faire mais ça doit être possible)...
26 févr. 2004 à 09:18
http://search.microsoft.com/search/results.aspx?View=msdn&st=a&qu=GetVersionEx&c=0&s=1
ces 2 lignes n'en font qu'une bien sûr dans la barre d'adresse.
25 févr. 2004 à 18:05
25 févr. 2004 à 15:45
mdr surfzoid !
Je rappelle que le source situé "ou il y a marqué "télécharger le Zip" (en bleu)" n'est que celui de yannn auquel g rajouté des trucs.
Maintenant, pour le reste, j'arrive, patience.
Quoique, pour détecter l'OS c simple :
Type OSVERSIONINFO
dwOSVersionInfoSize As Long
dwMajorVersion As Long
dwMinorVersion As Long
dwBuildNumber As Long
dwPlatformId As Long
szCSDVersion As String * 128
wSPMajor As Integer
End Type
Declare Function GetVersionEx _
Lib "kernel32" Alias "GetVersionExA" _
( _
lpVersionInformation As OSVERSIONINFO _
) As Long
Function Win_Ver() As String
Dim myOS As OSVERSIONINFO
myOS.dwOSVersionInfoSize = 148
GetVersionEx myOS
Win_Ver = myOS.dwPlatformId
End Function
Ca te renvoie "1" pour Win 98 ou "2" pour Win XP.
25 févr. 2004 à 13:27
LOL
27 janv. 2004 à 13:05
http://www.vbfrance.com/code.aspx?ID=19816
J'utilise l'api :GetAsyncKeyState et l'api: SetTimer !!!
Ps: g rencontré ce probléme au debut du dev de mon keylogger!!!
11 janv. 2004 à 11:20
Merci a tous ; )
7 janv. 2004 à 14:32
Jouer avec le timer c bien mais le hic c que même si 1/1000 s c pareil partout il y a des différences suivant les machines.
A mon boulot, comme on change les machines tous les 4 ans, il y a +sieurs générations de processeurs et d'OS. G donc pu tester et le key ne se comporte pas de la même manière au niveau capture des touches.
Il y a peut être une solution consistant à détecter le type de proc et d'OS pour régler le timer et d'autres choses en fonction. Voire, détecter aussi la résolution d'écran pour régler la zone curseur.
Ces trucs-là, je sais les faire, je les posterai +tard (quand j'aurai retrouvé mon source).
@+
7 janv. 2004 à 13:54
JOjo
31 déc. 2003 à 15:12
Jojo29118
31 déc. 2003 à 15:07
31 déc. 2003 à 15:01
30 déc. 2003 à 13:01
et effectivement, on peut aussi utiliser le tunneling, technique qui consiste à empaqueter des données dans un protocole autorisé ou plus discret.
30 déc. 2003 à 12:58
Cordialement,
Jojo29118
30 déc. 2003 à 08:00
En fait, je t'ai dit sa par rapport aux alertes que donne les firewalls, certains donnent une alerte en disant le nom et montrant l'icone uniquement, si l'utilisateur ne vois rien, il clique OUI et croira que c'est bien IE qui se connecte. Mais c'est vrai que c'est un peu de la bidouille et que tout les firewalls n'aggissent pas pareil. La solution ultime pour contourner les firewalls n'éxiste pas, à par comme je l'ai déja vu dans un (connu), envoyer les packets à travers une autre application qui serait déja authorisée (par exemple IE) et comme sa, on ne voit rien du tout à par du traffic sur IE.
28 déc. 2003 à 21:18
Pour ce qui est de la communication, j'ai fait une mise a jour de mon keylogger qui utilise le moyen FTP ... si ca peut te donner des idées ...
Adresse :
http://www.vbfrance.com/code.aspx?ID=18986
Passe un bon premier de l'an ... et surtout une super fete du 31 !!!!
28 déc. 2003 à 18:44
Je ne suis pas OK avec toi, tu peux mettre un titre d'application reconnu (si tu y arrive car VB l'interdit) ou changer le nom de l'EXE, mon firewall n'est pas dupe donc je suppose que les autres vont le stopper aussi.
Dans une entreprise (comme la mienne), winsock suffit car le firewall n'agit que pour les connexions WEB. Les serveurs MAIL ne sont protégés que de l'extérieur. De l'intérieur, on fait ce qu'on veut.
G essayé de changer le port (25) par défaut de winsock et ça ne marche pas.
Si tu peux m'éclairer la dessus, je suis preneur.
Cordialement
28 déc. 2003 à 17:48