一些木马采用DLL注入的方式存在于系统中,由于其隐蔽性,对于用户
来说是很大威胁,下面介绍如何用Delphi缷载任意进程的某个动态链接库。
一、DLL注入
DLL注入是指以各种如钩子、远程线程、木马DLL等方式,将某个DLL
注入到目标进程中运行,由于不需要进程驻留,这种方式往往能达到较好
的隐藏效果。
二、DLL缷载
用创建远程线程方式在目标进程中运行缷载代码,让进程自己缷载DLL。
远程线程是指在其他进程空间运行的线程,比如进程A有一个线程A,我们
在进程B中知道线程A的地址,哪么我们可以用CreateRemoteThread函数在
进程B中运行进程A的线程A,这个线程A就是相对于进程B的远程线程。如果
进程A里面并没有预先供我们运行的线程,哪么我们可以用VirtualAllocEx
在进程A申请一块空间,再用WriteProcessMemory把我们的线程代码写过去,
然后用CreateRemoteThread函数实现远程线程的运行。
缷载DLL的代码很简单,只需调用FreeLibrary(DLL_Handle)即可,但
实际情况有些复杂。我们知道,当我们在写源代码时调用API都是直接调
用,特殊情况声明一下包含某单元(头文件),编译器就会帮我们做好幕
后工作,建立相应的引入表项目,引入该API,API就可以用了。而到了目
标进程里面,我们并不知道FreeLibrary的地址,哪么我们需要找到API的
地址才能调用。
附件下载:
/Upfile/20101016/2010101635020593.rar