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 très actif
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 434
    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
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    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).
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre très actif
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 434
    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