DLL注入练习之远程注入-CreateRemoteThread()

最近在学习Windows API,觉得其中的一些函数比较有意思,就把它记录下来了。

DLL注入指的是向运行中的其他进程强制插入特定的DLL文件,从而使之运行特定代码。

DLL注入基本过程:运行程序使其他进程调用LoadLibrary()API,调用用户指定的DLL文件,从而在LoadLibrary()完成后,调用DLL文件中的DllMain()函数。

(DLL注入是使远程进程调用LoadLibrary(),而非自身进程,编写DLL注入程序的时候需要注意这一点)

(DLL加载到进程后会自动运行DllMain()函数,用户可以把想要执行的代码放到DllMain()函数里,每当该DLL被加载时,添加的代码就会被执行。利用该过程可以修复程序bug,编写恶意DLL等)


DllMain()函数示例

BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD dwReason, LPVOID lpvRevered) {
	switch( dwReason ) {
		case DLL_PROCESS_ATTACH:
			// 被进程加载时运行的代码
			break;
		case DLL_PROCESS_DETACH:
			// 被进程卸载时运行的代码
			break;
		case DLL_THREAD_ATTACH:
			// 被线程加载时运行的代码
			break;
		case DLL_THREAD_DETACH:
			// 被线程卸载时运行的代码
			break;
	}

	return TRUE;
}
被注入的DLL拥有目标进程内存的访问权限,所以我们可以通过该技术向目标程序增加或修改某些功能。

向某个进程注入DLL时

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值