用Delphi内嵌汇编实现缷载任意进程的某个DLL

2018-10-30

一些木马采用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
阅读23