Net send anonyme via les mailslots

Soyez le premier à donner votre avis sur cette source.

Vue 45 362 fois - Téléchargée 1 645 fois

Description

Le service d'affichage des messages de Windows ("net send") travail avec les mailslots.
(je vous invite à voir : http://castelain.developpez.com/articles/Mailslots/ )

J'ai recrée un client d'affichage des messages permettant d'envoyé des messages à un autre PC mais contrairement à ma précedente source ( http://www.delphifr.com/codes/NET-SEND-DELPHI-API-NETMESSAGEBUFFERSEND_34749.aspx ) celle-ci permet de se faire passer pour quelqu'un d'autre puisque l'on peut choisir le nom de l'emetteur.
Un système de bombing permet d'envoyer une multitude de messages a la suite, mais ne faite pas çà, c'est chiant :-)

PS : Merci à fOxi pour l'optimisation du code.

Note et commentaires sont les bienvenues.

Source / Exemple :


function SendMessage(const Emetteur, Destinataire, LeMessage : string) : Boolean;
var
  HWNDSlot : THandle;
  Buffer   : String;
  lpNumberOfBytesWritten : Cardinal;
begin

  { Init }
  Result := false;
  lpNumberOfBytesWritten := 0;

  { Création du MailSlot }
  HWNDSlot := CreateFile( PChar('\\' + Destinataire + '\MAILSLOT\MESSNGR'),
                           GENERIC_WRITE, FILE_SHARE_READ, nil,
                           OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0 );

  { Définition de la trame }
  Buffer := Emetteur + #0 + Destinataire + #0 + LeMessage + #0;

  try
      result := ( HWNDSlot <> INVALID_HANDLE_VALUE );
      if ( result ) then       { Envoi }
         result := WriteFile( HWNDSlot, PChar(Buffer)^, Length(Buffer), lpNumberOfBytesWritten, nil );
  finally
      CloseHandle( HWNDSlot );
  end;

end;

Conclusion :


Si les messages ne passent pas, verifiez que la machine distance est bien son service des messages activé.

Pour celà faire : [Démarrer] > [Executer] > "net start messenger" > [Ok]

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
2226
Date d'inscription
dimanche 5 octobre 2003
Statut
Modérateur
Dernière intervention
18 novembre 2010
13
Salut, excellent soft, par contre mes messages sont reçus 2 fois.
je suis passé en debug et rien ne laisse penser que ça l'envoie 2 fois ..
help ?
Messages postés
19
Date d'inscription
vendredi 21 septembre 2007
Statut
Membre
Dernière intervention
30 janvier 2009

Ah oé, c'est le nom de la machine, pas le nom d'utilisateur ...
Messages postés
718
Date d'inscription
jeudi 19 décembre 2002
Statut
Membre
Dernière intervention
22 novembre 2016
3
Ba si tu sais ce que c'est, alors c'est tout bon :-)

T'as plus qu'à copier ma fonction dans ton programme (ne pas oublier le Uses Windows) et l'appeler.

Emetteur: Tu mets ce que tu veux on s'en fou..
Destinataire: Nom de la machine à laquelle tu veux poster le message
LeMessage : Le message que tu veux envoyer...

Finger in The Noze !
Messages postés
19
Date d'inscription
vendredi 21 septembre 2007
Statut
Membre
Dernière intervention
30 janvier 2009

Oui c'est la commande qui permet d'envoyer des messages à un utilisateur du reseau ...
Mais euh le paraméttre destinataire, ce n'est pas plutot le nom de la machine plutot ?
Messages postés
718
Date d'inscription
jeudi 19 décembre 2002
Statut
Membre
Dernière intervention
22 novembre 2016
3
Elle est compliqué ma fonction ? Y'a que des string en paramètre :-D

Déja tu sais ce que c'est un net send ?
Afficher les 11 commentaires

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.