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

Windows Discussion :

Injection de dll


Sujet :

Windows

  1. #1
    Membre régulier
    Avatar de alpha_one_x86
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 411
    Points : 113
    Points
    113
    Par défaut Injection de dll
    Bonjour, j'ai besoin d'injecter shell32.dll pour récupérer la copie des fichiers fait par l'utilisateur pour utilisé mon logiciel au lieu du logiciel par défaut, qui pourrai m'aider à injecter cette dll?
    Développeur d'Ultracopier

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    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 369
    Points : 41 518
    Points
    41 518
    Par défaut
    L'injecter vraiment, ou juste l'utiliser ?
    Beaucoup d'applications utilisent déjà shell32.dll...


    Ou bien, ne veux-tu pas plutôt injecter un hook à toi dans la DLL? (si c'est possible: Il me semble qu'on ne peut injecter que dans les processus eux-mêmes, donc il faudra le faire pour tous les processus qui utilisent shell32.dll...)

    Vérifie aussi qu'il n'y a pas un moyen plus "légal" de faire toi-même la copie des fichiers: La DLL accepte peut-être un composant COM pour ça...
    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 régulier
    Avatar de alpha_one_x86
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 411
    Points : 113
    Points
    113
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Vérifie aussi qu'il n'y a pas un moyen plus "légal" de faire toi-même la copie des fichiers: La DLL accepte peut-être un composant COM pour ça...
    J'ai bien chercher, idem sous linux, pas moyen de trouver un moyen de dire au système d'utiliser notre système de copie.
    Développeur d'Ultracopier

  4. #4
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    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 369
    Points : 41 518
    Points
    41 518
    Par défaut
    En fait, tu cherches principalement à hooker SHFileOperation() ?
    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.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2008
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Voila pour toi

    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
    DWORD WINAPI InjectionThread(LPVOID lpParam)
    {
    	while(1)
    	{
    		HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    
    		PROCESSENTRY32 PE32;
    		PE32.dwSize = sizeof(PROCESSENTRY32);
    
    		if(!Process32First(hSnapshot, &PE32))
    			return 0;
    
    		while(Process32Next(hSnapshot, &PE32))
    		{
    			if(strcmp(PE32.szExeFile, "logiciel.exe")== 0)
    			{
    				Sleep(100);
    
    				HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, false, PE32.th32ProcessID);
    				HANDLE hModule = VirtualAllocEx(hProcess, 0, sizeof(szDllToInject), MEM_COMMIT, PAGE_EXECUTE_READWRITE);
    
    				WriteProcessMemory(hProcess, hModule, (LPVOID)szDllToInject, sizeof(szDllToInject), NULL);
    				CreateRemoteThread(hProcess, NULL, 0, (unsigned long(__stdcall *)(void *))GetProcAddress(GetModuleHandle("kernel32"), "LoadLibraryA"), hModule, 0, NULL);
    
    				CloseHandle(hProcess);
    				CloseHandle(hModule);
    
    				ExitProcess(0);
    
    				break;
    			}
    		}
    
    		CloseHandle(hSnapshot);
    
    		Sleep(5);
    	}
    
    	return 0;
    }

  6. #6
    Membre régulier
    Avatar de alpha_one_x86
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 411
    Points : 113
    Points
    113
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    En fait, tu cherches principalement à hooker SHFileOperation() ?
    Si j'ai bien compris ce que ça fessait oui. Il me faut simplement utilisé mon logiciel de copie à la place de la copie de windows, donc appararment ça correspond.


    WaRmUp01 je vais essayer de mettre en place ton code et essayer de l'exécuter. Même si je ne comprend pas ce qu'il fait. Et comment récupérer l'évènement de copie. Tu pourrai pas me faire un tout petit prog console qui détourne et affiche en console les copiers coller demander par l'utilisateur?
    Développeur d'Ultracopier

  7. #7
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    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 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Le code de WaRmUp01 ne fait pas ce dont tu as besoin: Il fait une injection de thread qui charge la DLL dans le processus destinataire, mais ne hooke aucune fonction.

    C'est plutôt le genre de code qui serait utile à un spyware pour injecter un nouveau thread dans un processus existant, plutôt que d'apparaître dans le gestionnaire de tâches...
    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.

  8. #8
    Membre régulier
    Avatar de alpha_one_x86
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 411
    Points : 113
    Points
    113
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Le code de WaRmUp01 ne fait pas ce dont tu as besoin: Il fait une injection de thread qui charge la DLL dans le processus destinataire, mais ne hooke aucune fonction.

    C'est plutôt le genre de code qui serait utile à un spyware pour injecter un nouveau thread dans un processus existant, plutôt que d'apparaître dans le gestionnaire de tâches...
    Alors comment faire pour trouver un exemple de code qui fait ce que je cherche?
    Développeur d'Ultracopier

  9. #9
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    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 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Je crois que le mot-clé est "API Hooking".
    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.

  10. #10
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    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 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Apparemment, ce n'est même plus trop la peine de réfléchir là-dessus, vu que ce ne sera pas compatible avec Windows Vista...
    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.

  11. #11
    Membre régulier
    Avatar de alpha_one_x86
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 411
    Points : 113
    Points
    113
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Apparemment, ce n'est même plus trop la peine de réfléchir là-dessus, vu que ce ne sera pas compatible avec Windows Vista...
    Je veux que ce soit compatible avec xp avant tout. Donc si il faut bien. Aprés si il y a moyen avec vista tant mieux, si non tant pis.
    Développeur d'Ultracopier

  12. #12
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Peut être une piste ici, c'est en Delphi et autour de la registry mais le besoin me semble identique.

  13. #13
    Membre régulier
    Avatar de alpha_one_x86
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 411
    Points : 113
    Points
    113
    Par défaut
    Citation Envoyé par Laurent Dardenne Voir le message
    Peut être une piste ici, c'est en Delphi et autour de la registry mais le besoin me semble identique.
    J'ai le code exacte en pascal de ce que je veux faire:
    http://supercopier.cvs.sourceforge.n...HookEngine.pas
    Ou du moins dans:
    http://supercopier.cvs.sourceforge.n.../SuperCopier2/
    Mais je comprend pas et je sais pas traduire en C++ ce que je veux faire. Et rien qu'en C++ le code de hook j'ai du mal à le comprendre.
    Développeur d'Ultracopier

  14. #14
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par alpha_one_x86
    Et rien qu'en C++ le code de hook j'ai du mal à le comprendre.
    Là je ne peux rien pour toi, désolé

  15. #15
    Membre régulier
    Avatar de alpha_one_x86
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 411
    Points : 113
    Points
    113
    Par défaut
    Citation Envoyé par Laurent Dardenne Voir le message
    Là je ne peux rien pour toi, désolé
    Si écrire un petit prog console qui intercepte et affiche tout bêtement les copie dans la console.
    Développeur d'Ultracopier

  16. #16
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par alpha_one_x86 Voir le message
    Si écrire un petit prog console qui intercepte et affiche tout bêtement les copie dans la console.
    Je n'ai peut être pas bien compris mais l'objectif des forums d'entraide est de donner, une solution ou une information voir une piste de recherche mais pas de faire à la place de.
    Citation Envoyé par alpha_one_x86 Voir le message
    Bonjour, j'ai besoin ...
    Moi ça va je n'ai besoin de rien pour le moment

Discussions similaires

  1. Injection de DLL
    Par saounaou dans le forum C#
    Réponses: 1
    Dernier message: 09/03/2012, 10h03
  2. Injection de dll native dans une appli .Net
    Par LEK dans le forum C++/CLI
    Réponses: 1
    Dernier message: 16/01/2010, 10h04
  3. injection de DLL et surcharge de fonctions
    Par d'Oursse dans le forum Windows
    Réponses: 14
    Dernier message: 28/11/2009, 11h17
  4. [C++]Injection de DLL
    Par The Lord of Nesquik dans le forum Windows
    Réponses: 3
    Dernier message: 09/06/2006, 15h42

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