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?
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
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.
Développeur d'Ultracopier
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.
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; }
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
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.
Développeur d'Ultracopier
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.
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.
Développeur d'Ultracopier
Peut être une piste ici, c'est en Delphi et autour de la registry mais le besoin me semble identique.
Tutoriels Delphi Win32/Delphi .NET/Oracle/PowerShell - FAQ Delphi - FAQ Delphi .NET
Beatus, qui prodest, quibus potest.
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
Là je ne peux rien pour toi, désoléEnvoyé par alpha_one_x86
Tutoriels Delphi Win32/Delphi .NET/Oracle/PowerShell - FAQ Delphi - FAQ Delphi .NET
Beatus, qui prodest, quibus potest.
Développeur d'Ultracopier
Tutoriels Delphi Win32/Delphi .NET/Oracle/PowerShell - FAQ Delphi - FAQ Delphi .NET
Beatus, qui prodest, quibus potest.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager