Net send anonyme via les mailslots

Soyez le premier à donner votre avis sur cette source.

Vue 12 609 fois - Téléchargée 1 415 fois

Description

Cette source est une adaptation VB de mon programme en Delphi (sur DelphiFr.com).
Elle permet d'envoyer un message de type NetSend à une machine distante (sur le reseau), avec la possibilité de mettre un nom d'emetteur quelqconque... ce qui n'est pas possible avec la commande "Net Send" de chez Microsoft.

Commentaires et notes sont les bienvenues.

Source / Exemple :


'----------------------------------------
' NSA : Envoi de net send anonyme
' --------------------------------
' Par LEVEUGLE Damien
' Elguevel (c) 2006
'
' Pour : VBFrance.com
'
'----------------------------------------

Option Explicit

    '--------------------
    ' Fonctions Windows
    '--------------------
    Private Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" ( _
        ByVal lpFileName As String, _
        ByVal dwDesiredAccess As Long, _
        ByVal dwShareMode As Long, _
        ByVal lpSecurityAttributes As Long, _
        ByVal dwCreationDisposition As Long, _
        ByVal dwFlagsAndAttributes As Long, _
        ByVal hTemplateFile As Long) As Long

    Private Declare Function WriteFile Lib "kernel32" ( _
        ByVal hFile As Long, _
        ByVal lpBuffer As String, _
        ByVal cToWrite As Long, _
        ByRef cWritten As Long, _
        Optional ByVal lpOverlapped As Long) As Long
        
    Private Declare Function CloseHandle Lib "kernel32" ( _
        ByVal hObject As Long) As Long
        
    '--------------------
    ' Constantes Windows
    '--------------------
    Public Const OPEN_EXISTING = 3
    Public Const FILE_SHARE_READ = &H1
    Public Const INVALID_HANDLE_VALUE = &HFFFFFFFF
    Public Const GENERIC_WRITE = &H40000000
    Public Const FILE_ATTRIBUTE_NORMAL = &H80
        

'****************************************************
'* ENVOI
'****************************************************
Public Function SendMessage(Emetteur, Destinataire, LeMessage As String) As Boolean

    ' Declaration
    Dim HWNDSlot    As Integer
    Dim Buffer      As String
    Dim NombreEcrit As Long

    ' Initialisation
    SendMessage = False
    NombreEcrit = 0     ' Non utilisé

    ' Création du MailSlot
    HWNDSlot = CreateFile("\\" & Destinataire & "\MAILSLOT\MESSNGR", _
                           GENERIC_WRITE, _
                           FILE_SHARE_READ, 0, _
                           OPEN_EXISTING, _
                           FILE_ATTRIBUTE_NORMAL, 0)

    ' Définition de la trame
    Buffer = Emetteur & Chr(0) & Destinataire & Chr(0) & LeMessage & Chr(0)

    ' Envoi
    If (HWNDSlot <> INVALID_HANDLE_VALUE) Then
        Call WriteFile(HWNDSlot, Buffer, Len(Buffer), NombreEcrit, 0)
        SendMessage = True
    Else
        SendMessage = False
    End If
  
    ' Fermeture du Slot
    Call CloseHandle(HWNDSlot)

End Function

Conclusion :


Ce programme est hyper court et simple, et ne necessite que la connaissance des MAILSLOTS.
Il à été rapidement traduit, et donc peut etre impcomplet ou manquant de fonctionalités, mais il fonctionne.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

cs_logarcon
Messages postés
44
Date d'inscription
mardi 31 décembre 2002
Statut
Membre
Dernière intervention
4 avril 2008
-
elguevel
Messages postés
735
Date d'inscription
jeudi 19 décembre 2002
Statut
Membre
Dernière intervention
22 novembre 2016
3 -
"ca fait léger comme avantage :
- Possibilité de bombing (faut ajouter une boucle dans le programme)"

C'est simplement un exemple d'utilisation ... avec le net send habituelle il faudrai crée une routine externe pour faire du bombing, l'avantage de ce programme etant surtout de passer par une autre alternative que le fameux NetMessageBufferSend.

Puis arrettez de me parler de CMD ou de Shell(), ici on fait de la programmation pas de la ligne de commande ou des Batch.
Et encore je poste ici pour la communauté, car je ne porte pas VB dans mon coeur.
Renfield
Messages postés
17280
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
21 juillet 2019
57 -
ca fait léger comme avantage :
- Possibilité de bombing (faut ajouter une boucle dans le programme)

le désavantage du démarrer > executer, c'est ce coté non anonyme...
et je ne parle pas des traces que ca laisse en base de registres...
(surtout si vous vous en servez pour tricher... passez au moins par l'interpreteur de ligne de commande (cmd))
elguevel
Messages postés
735
Date d'inscription
jeudi 19 décembre 2002
Statut
Membre
Dernière intervention
22 novembre 2016
3 -
Quel remarque pertinante... :-(

Si tu avais lu tout les postes j'explique les raisons avantageuse de l'utilisation d'un tel programme :
- Interface graphique
- Possibilité de bombing (faut ajouter une boucle dans le programme)
- On ne passe pas par son service des messages (protection contre les net send des autres).
- ET SURTOUT l'emetteur peut mettre le nom qu'il veut, donc ANONYME (c'est le titre de la source, ce que le net send standard ne fait pas).

Je montre aussi ici, et c'est le but de ce site, l'utilisation d'autres methodes qui ici sont les MAILSLOT, Les API (CreateFile, WriteFile, et CloseHandle) sans compter vous montrer comment est structuré et comment est composé le NETSEND.

Après si tout le monde me sort suffit de faire Shell("net send etc...").. moi c'est fini je met plus les pied sur VBFrance :-s
loulou_be
Messages postés
3
Date d'inscription
jeudi 30 mars 2006
Statut
Membre
Dernière intervention
25 mai 2006
-
Pourquoi se casser la nénette ?
Suffit d'aller dans "démarrer", "éxécuter", et de taper ceci < net send "NOM DU DESTINATAIRE" "MESSAGE" >

ça marche très bien, on l'utilise pour tricher aux exams nous :p

Bonne journée à tous

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.