上犹电脑信息网我们一直在努力
您的位置:上犹电脑信息网 > 文件问题 > 实例教学!C语言远程注入dll:获取进程PID|一教就会系列-dll文件怎么打开

实例教学!C语言远程注入dll:获取进程PID|一教就会系列-dll文件怎么打开

作者:上犹日期:

返回目录:文件问题

实例教学!C语言远程注入dll:获取进程PID|一教就会系列

别忙着收藏嘛,直接关注不是更好吗?更多干货等着你哦!


DLL注入,接上一篇文章

这两天我们的文章都是围绕着“DLL远程注入”进行的,上一篇文章我们讲了,如何去创建、编写我们远程注入是需要的dll文件,并且教大家如何去解决“堆被破坏”的问题,现在我们已经有了“”,但是我们的“弓”还没做好呢,今天小编就教大家如何去制作“”,也就是——注入程序

DLL注入病毒曾在2003年肆虐

dll注入有什么能耐?它的能耐可大着呢!2003年名为QQ尾巴的木马程序,席卷了“QQ圈”,该木马可以向QQ好友发送垃圾信息或木马网址,并且还能盗取账号密码等敏感信息,利用QQ系统广播骗取费用,查看用户电脑信息,恶意共享文件等,由此可见dll注入的破坏力。

实例教学!C语言远程注入dll:获取进程PID|一教就会系列

好在国内的杀毒软件都已经及时的更新,遏制了QQ尾巴的蔓延,而dll注入漏洞也成为了各大杀毒软件的重点“看护”对象,严格的来讲,dll远程注入并不是一个漏洞,dll远程注入是利用windows内部的函数CreatremoteThread()进行的,这个函数在开发人员手里可以用来维护软件,在坏人手里是用来破坏系统的。

坏人可以利用CreatremoteThread(),把一个精心设计好的dll注入到系统进程里,这个dll就寄生在系统进程中一样,除非系统进程关闭,否则这个dll基本上是移除不了的,即使这个dll已经被发现,那也很难把它清除。不过现在的计算机安全软件基本上都能防御DLL注入攻击

实例教学!C语言远程注入dll:获取进程PID|一教就会系列

废话不多说,燥起来!

好了,现在开始教大家如何制作DLL注入程序,首先呢,注入程序涉及的细节比较多,所以我们将分成两三篇文章来讲。在下文中,我们要注入的进程就简称为“目标进程”。

首先,我们需要用OpenProcess()函数来打开目标进程,但是OpenProcess()函数需要三个函数,这三个参数中,有两个是已知的,有一个是未知的—— 目标进程的PID,为了能够使用OpenProcess()函数,我们就先得得到目标进程的PID,所以我们要创建一个函数—— getpid(),它的作用是遍历进程列表并返回指定进程PID。

创建getpid()

在整个注入程序中,我们需要引用三个头文件,分别是stdio.h、windows.h、TlHelp32.h,getpid()能接受一个参数,那就是进程的名字。

实例教学!C语言远程注入dll:获取进程PID|一教就会系列

首先我们要获取所有进程的快照,然后使用Process32First()来第一次查找列表中的第一个进程,这个函数有两个参数,一个是之前获得的进程快照,一个是存放进程信息的结构体,这个结构中的szExeFile是进程的名字信息,而我们会用这个名字信息与我们想要查找的进程名进行比较。

实例教学!C语言远程注入dll:获取进程PID|一教就会系列

第一次查找用到Process32First()函数,接下来的查找就需要Process32Next()函数了,在这两个函数的基础上,我们加上一个while()循环就能找到我们的目标进程了。什么你说你看不懂?没事文章末尾有源码学习哦!

实例教学!C语言远程注入dll:获取进程PID|一教就会系列

注意上图中箭头指向的代码块,其中name是我们输入的目标进程名,属于多字节字符集,而存放进程名字的结构成员szExeFile存放的进程名却是unicode字符集,直接让这两个变量进行比较,编译器是不会报错的,实际上,wcscmp()函数永远都无法正确比较name和zExeFile是否相等,为了避免这个问题,我们要将这两个变量的字符集类型转换成相同的,小编这里将多字节字符集转换成了unicode字符集。

实例教学!C语言远程注入dll:获取进程PID|一教就会系列

getpid()创建的注意事项就是这些啦,到这里我们的getpid()函数就已经创建完毕了。看不懂没关系,文章末尾有拿源码方式!

使用OpenProcess()打开进程

PID获取之后就可以打开目标进程了,第一个参数通常是PROCESS_CREATE_THREAD|PROCESS_VM_OPERATION|PROCESS_VM_WRITE,第二个参数通常为0,而第三个参数就是我们获得的PID了,该函数的调用方式如下图↓

实例教学!C语言远程注入dll:获取进程PID|一教就会系列

OpenProcess()成功打开目标进程后,会返回目标进程的句柄,紧接着我们会利用这个句柄进行下一步操作,利用VirtualAllocEx()函数,在目标进程的内存地址空间中,开辟一个新的内存空间,供我们后续的注入行为使用。

实例教学!C语言远程注入dll:获取进程PID|一教就会系列

由于篇幅原因,本片文章就着重讲解如何获取目标进程PID如何打开目标进程这两个内容啦,整个注入程序还剩下4个步骤哦,想要学习的小伙伴就别急着收藏了,还不如关注《一碳科技》及时学习剩下的4个步骤!

想拿源码?别急,容小编提一个小小的要求——关注才能获取源码哦!

粉丝私信关键字:“DLL远程注入源码获取”,不能错哦,机器会识别不出来的!

实例教学!C语言远程注入dll:获取进程PID|一教就会系列

相关阅读

关键词不能为空
极力推荐

电脑蓝屏_电脑怎么了_win7问题_win10问题_设置问题_文件问题_上犹电脑信息网

关于我们