./c0de/c/dllinject.txt

0.
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.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
#include <iostream>
#include <windows.h>
 
using namespace::std;
 
int Inject(HWND hwnd, char *name);
 
int main()
{
   char dll[]="c:/tt.dll";//change the name to your dll
   HWND hw=0;
 
 
      hw = FindWindow("Notepad",NULL);//change the "Notepad" to your window name
 
      if(!hw)
      {
         cout<<"Unable find window"<<endl;
         return 0;
      }
 
      if(Inject(hw,dll))
      {
         cout<<"DLL has injected into the process successfully"<<endl;
      }
 
      else
      {
         cout<<"Couldn't inject DLL into process"<<endl;
      }
 
   return 0;
}
 
 
int Inject(HWND hwnd,char *name)
{
   DWORD Pid;
   HANDLE    hProcess,hThread;
   DWORD   BytesWritten;
   LPVOID    mem;
 
 
   GetWindowThreadProcessId(hwnd, &Pid);
 
 
   hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, Pid);
 
   if(!hProcess)
      return 0;
 
 
   mem = VirtualAllocEx(hProcess, NULL,  strlen(name), MEM_RESERVE|MEM_COMMIT, PAGE_READWRITE);
 
   if(mem==NULL)
   {
CloseHandle(hProcess);
return 0;
   }
 
   if(WriteProcessMemory(hProcess, mem, (LPVOID)name,  strlen(name), &BytesWritten))
   {
 
      hThread = CreateRemoteThread(hProcess, NULL, 0, (LPTHREAD_START_ROUTINE)GetProcAddress(GetModuleHandle("KERNEL32.DLL"), "LoadLibraryA"), mem, 0, NULL);
 
      if(!hThread)
      {
          VirtualFreeEx(hProcess,NULL,strlen(name),MEM_RESERVE|MEM_COMMIT);
CloseHandle(hProcess);
         return 0;
      }
      VirtualFreeEx(hProcess,NULL,strlen(name),MEM_RESERVE|MEM_COMMIT);
 
            CloseHandle(hThread);
               CloseHandle(hProcess);
 
      return 1;
 
 
   }   
   VirtualFreeEx(hProcess,NULL,strlen(name),MEM_RESERVE|MEM_COMMIT);
 
               CloseHandle(hProcess);
 
   return 0;
} 

Back