侧边栏壁纸
博主头像
胜星的博客博主等级

行动起来,活在当下

  • 累计撰写 23 篇文章
  • 累计创建 38 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Dll注入——远程线程注入

胜星
2021-03-08 / 0 评论 / 0 点赞 / 132 阅读 / 1141 字

Dll注入的初始动力源自于程序员对其他第三方应用程序进行功能的扩展的愿望,现在的Dll注入技术仍然是构成系统复杂功能,或者应用程序实现复杂操作的基础支撑技术。

目前公开的Dll注入技巧共有以下几种:

  1. 注册表注入
  2. ComRes注入
  3. APC注入
  4. 消息钩子注入
  5. 远程线程注入
  6. 依赖可信进程注入
  7. 劫持进程创建注入
  8. 输入法注入

远程线程注入示例代码:

#include <iostream>
#include<Windows.h>
//Dll路径
#define PATH L"D:\\******\\Hook.dll"
int main()
{
	//1. 获取目标进程的句柄
	HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, 11232);
	//2. 在目标进程中申请一块空间
	int nLenth = wcslen(PATH);
	LPVOID  pAddress=  VirtualAllocEx(hProcess, 0, nLenth*2+2, MEM_COMMIT, PAGE_READWRITE);

	//3. 将DLL名字写入到目标进程的空间中
	DWORD dwRealSize = 0;
	WriteProcessMemory(
		hProcess,
		pAddress,
		PATH,
		nLenth * 2 + 2,
		&dwRealSize
	);
	//4. 创建远程线程
	HANDLE hThread = CreateRemoteThread(hProcess,0, 0,
		(LPTHREAD_START_ROUTINE)LoadLibrary,//关键函数
		(LPVOID)pAddress,//关键参数
		0, 0);
	WaitForSingleObject(hThread, -1);

	//5. 清理资源
	VirtualFreeEx(hProcess, pAddress, nLenth * 2 + 2, MEM_RELEASE);
	CloseHandle(hThread);
}

0

评论区