DLL加载器-远程线程注入(常规dll注入)

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

在这里插入图片描述

实验

注入思路
先获取到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;  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值