Salut a tous,
j'essaye de creer un thread dans un dll, mais, ca plante...
voila le code...
la dll est injectee dans un processus via createRemoteThread, ca plante apres l'affichage de la premiere boite de dialogue.
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 /* ** fonction appellee quand la dll est attachee */ DWORD WINAPI attachFunction(LPVOID lpParam) { MessageBox(NULL, "WAPATILOUMPA!!!!!!!!! ", "hui", MB_OK); MessageBox(NULL, "WAPATILOUMPA!!!!!!!!! ", "hui", MB_OK); return 1; } /* ** main */ BOOL WINAPI DllMain(IN HANDLE DllInstance, IN ULONG ReasonForCall, IN LPVOID Reserved) { DWORD ThreadId; switch (ReasonForCall) { case DLL_PROCESS_ATTACH: CreateThread(NULL, NULL, attachFunction, NULL, 0, &ThreadId); break; case DLL_PROCESS_DETACH: break; } return (TRUE); }
je ne comprend pas du tout pourquoi
si vous avez des infos, n'hesitez pas!
pour info voila en gros les etapes du code injecteur:
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 HANDLE hProcess; HANDLE hRemoteThread; LPVOID RemoteProcAddr; hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, th32ProcessID); RemoteProcAddr = VirtualAllocEx(hProcess, NULL, MAX_PATH, MEM_COMMIT, PAGE_EXECUTE_READWRITE); WriteProcessMemory(hProcess, RemoteProcAddr, TEXT("C:\\test.dll")), MAX_PATH, NULL); hRemoteThread = CreateRemoteThread(hProcess, NULL, 0, (LPTHREAD_START_ROUTINE)GetProcAddress(GetModuleHandle(TEXT("kernel32.dll")), "LoadLibraryA"), RemoteProcAddr, 0, NULL);
Partager