IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Comment utiliser une dll sensée faire un hook ? Joyeux Noël


Sujet :

C++

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 434
    Points : 82
    Points
    82
    Par défaut Comment utiliser une dll sensée faire un hook ? Joyeux Noël
    Bonjour, voila mon problème, j'ai une dll et ses sources c++, qui est sensée faire un hook de winsock. On m'a passé aussi la source c# d'un exemple utilisant cette dll pour lancer le hook, le problème c'est que je n'arrive pas à le transformer en c++, voici la source:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.Runtime.InteropServices;
    using System.Net.Sockets;
     
    namespace WindowsApplication1
    {
    	public partial class Form1 : Form
    	{
    		[DllImport("detoursdll.dll")]
    		public static extern bool SetHook();
    		[DllImport("detoursdll.dll")]
    		public static extern bool UnsetHook();
     
    		public Form1()
    		{
    			InitializeComponent();
     
    			button1.Enabled = true;
    			button2.Enabled = false;
    		}
     
    		private void button1_Click(object sender, EventArgs e)
    		{
    			if (!SetHook())
    				return;
     
    			button1.Enabled = false;
    			button2.Enabled = true;
    		}
     
    		private void button2_Click(object sender, EventArgs e)
    		{
    			if (!UnsetHook())
    				return;
     
    			button1.Enabled = true;
    			button2.Enabled = false;
    		}
    	}
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    using System;
    using System.Collections.Generic;
    using System.Windows.Forms;
     
    namespace WindowsApplication1
    {
    	static class Program
    	{
    		/// <summary>
    		/// The main entry point for the application.
    		/// </summary>
    		[STAThread]
    		static void Main()
    		{
    			Application.EnableVisualStyles();
    			Application.SetCompatibleTextRenderingDefault(false);
    			Application.Run(new Form1());
    		}
    	}
    }

    Voila ca à l'air simple mais je ne connais pas le c# et je ne connais rien à propos des dlls en c++ donc si quelqu'un pouvait me donner le code le plus simple possible pour je lancer le hook au lancement et l'enlever à la fermeture ou convertir se code en c++, je lui en serais infiniment reconnaissant.

    Merci d'avance. Et joyeux Noël !

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 381
    Points : 41 582
    Points
    41 582
    Par défaut
    Apparemment, tout ce que fait ce code, c'est appeler les fonctions SetHook() et UnsetHook() de la DLL.

    Un bon LoadLibrary() + GetProcAddress() devrait suffire, et encore, tu n'en auras pas besoin si la DLL est fournie avec un fichier d'en-tête approprié...

    Note: Ce code C# n'est pas simple: C'est un extrait du code d'une application Windows Forms (une application avec une interface graphique).

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 434
    Points : 82
    Points
    82
    Par défaut
    Bon j'aurais bien aimé un petit exemple, mais ca m'a permis de trouvé donc, merci !

Discussions similaires

  1. [C] Comment utiliser une DLL ?
    Par The Lord of Nesquik dans le forum Windows
    Réponses: 1
    Dernier message: 14/05/2006, 12h26
  2. [COM] Comment utiliser une dll DotNet dans un projet win32 ?
    Par Marmottoc dans le forum API, COM et SDKs
    Réponses: 8
    Dernier message: 05/05/2006, 15h58
  3. [Langage]Comment utiliser une dll .NET dans VB6?
    Par BouB dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 13/04/2006, 14h20
  4. comment utiliser une DLL win32 en C??
    Par Jayceblaster dans le forum C
    Réponses: 8
    Dernier message: 31/03/2006, 12h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo