
实验
注入思路
先获取到LoadLibrary的函数地址,之后使用CreateRemoteThread加载这段地址即可
简单例子:
D:\VS项目\Dll3\x64\Debug\Dll3.dll
kernel.dll加载的地址在所有进程都是一样的
https://zhuanlan.zhihu.com/p/599915628?utm_id=0
DLL进程注入
dll注入器
#include<stdio.h>
#include<Windows.h>
#include<iostream>
#include<string>
using namespace std;
BOOL CreateRemoteDllInjectDll(DWORD dwProcessId, char* pdllname);
int main() {
DWORD dwProcessId;
char DLLName[20]; //需要输入的DLL文件名字
cout << "Pleace input DLLfile name :" << endl;
cin >> DLLName;
cout << "Pleace input PRocessID :" << endl;
cin >> dwProcessId;
CreateRemoteDllInjectDll(dwProcessId, DLLName);
return 0;
}
/**
1.打开要注入的进程
2.给进程分配虚拟内存 VirtualAllocEx
3.给分配的内存写入要注入的DLL目录
4.找到 kernel32.dll 模块的里面的LoadLibrary函数的地址
5.用CreatRemoTethread给目标进程注入dll
6.关闭目标进程的句柄
**/
BOOL CreateRemoteDllInjectDll(DWORD dwProcessId, char* pdllname) {
HANDLE hProcess = NULL; //进程句柄初始化
LPVOID pDLLAddr = NULL; //内存中申请空间时返回的页面基址 初始化
HMODULE hker = NULL;
FARPROC pFunProcAddr = NULL;

本文进行了Windows下DLL进程注入实验,以notepad++和Microsoft Edge浏览器为例。介绍了注入思路,先获取LoadLibrary函数地址,再用CreateRemoteThread加载。还详细阐述了涉及的多个函数,如GetModuleHandleA、OpenProcess等,说明了其功能、原型、参数和返回值。
最低0.47元/天 解锁文章
1518

被折叠的 条评论
为什么被折叠?



