DLL注入和代码注入学习心得

时间:2021-03-22 16:24:11

预备知识

windows消息钩取

钩子顾名思义就是钩取消息的钩子,例如:windows消息钩取就像古代传递消息的士兵,被截获消息被敌人截取查看或修改后继续传递。

windows消息流

举个例子:键盘消息:用户从键盘上输入消息WM_KEYDOWN,os系统接收到后将消息放到 操作系统消息队列中,操作系统判断哪个应用程序中发生了事件,将操作系统消息队列中的键盘上输入消息WM_KEYDOWN放到应用程序消息队列中,应用程序例如记事本监控自己的消息队列,发现自己的消息队列中新增加了WM_KEYDOWN消息后,调用事件处理消息。

DLL注入

含义:向正在
技术细节:DLL命令其他的进程执行loadlibrary()加载指定的DLL。

代码注入

代码注入又称线程注入。利用createRemoteThread()函数以远程线程形式运行代码。必须将代码和数据同时注入(数据以参数的形式注入)。

DLL注入和代码注入的比较

代码注入:

占用内存少:

如果注入的代码和数据较少,就不用做成DLL形式注入。和DLL的注入方式取的效果相同,且占用内存少。

难以查询痕迹:

采用代码注入的方式不会留下任何痕迹(当然也有一些方法可以检测),而DLL注入会在目标程序的内存中留下相关痕迹,很容易让人判断出来目标进程是否被执行过注入操作。

代码注入需求少

代码注入不需要另外的DLL文件,只需要少量代码。

简单总结

DLL注入技术主要用于代码量大且复杂的时候,而代码注入则适用豫代码量小且简单的情况。