首页 > 代码库 > dll注入简单实现
dll注入简单实现
// InjectDll.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <windows.h>#include <string>#include "stdio.h"#include <iostream>using namespace std;#define DEF_BUF_SIZE 1024//用于存储注入模块DLL的路径全名char szDllPath[DEF_BUF_SIZE] ={0};//使用远程线程向指定ID的进程注入模块BOOL InjectModuleToProcessById(DWORD dwProcessId){ if(dwProcessId == 0) { return FALSE; } HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS,FALSE ,dwProcessId); if(hProcess == NULL){ return FALSE; } //申请存放文件名的空间 UINT nLen = (UINT)strlen(szDllPath)+1; LPVOID lpRemoteDllName = VirtualAllocEx(hProcess ,NULL ,nLen,MEM_COMMIT,PAGE_READWRITE); if (lpRemoteDllName == NULL) { printf("[ERROR]VirtualAllocEx(%d)/n", GetLastError() ); return FALSE; } //把dll文件名写入申请的空间 if (WriteProcessMemory(hProcess,lpRemoteDllName,szDllPath,nLen,NULL) ==FALSE) { printf ( "[ERROR]WriteProcessMemory(%d)/n", GetLastError() ); return FALSE ; } //获取动态库函数地址 HMODULE hModule = GetModuleHandle(L"kernel32.dll"); LPTHREAD_START_ROUTINE fnStartAddr = (LPTHREAD_START_ROUTINE)GetProcAddress(hModule ,"LoadLibraryA"); if ((DWORD)fnStartAddr ==0) { printf ( "[ERROR]GetProcAddress(%d)/n", GetLastError() ); return FALSE ; } //创建远程线程 HANDLE hRemoteThread = CreateRemoteThread(hProcess ,NULL ,0,fnStartAddr ,lpRemoteDllName ,0,NULL); if(hRemoteThread == NULL){ printf ( "[ERROR]CreateRemoteThread(%d)/n", GetLastError() ); return FALSE ; } //等待远程线程结束 if(WaitForSingleObject(hRemoteThread,INFINITE)!= WAIT_OBJECT_0 ){ printf ( "[ERROR]WaitForSingleObject(%d)/n", GetLastError() ); return FALSE ; } CloseHandle(hRemoteThread); CloseHandle(hModule); CloseHandle(hProcess); return TRUE;}int _tmain(int argc, _TCHAR* argv[]){ GetCurrentDirectoryA(DEF_BUF_SIZE ,szDllPath); strcat(szDllPath ,"dll"); DWORD dwProcessId = 0; while (printf("请输入目标进程ID")&& cin>> dwProcessId && dwProcessId>0) { BOOL bRet = InjectModuleToProcessById(dwProcessId); printf (bRet ? "注入成功!/n":"注入失败!/n") ; } return 0;}
dll注入简单实现
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。