DLL的远程注入技术详解.pdf

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
DLL的远程注入技术详解.pdf

学习各种高级外挂制作技术,马上去百度搜索(魔鬼作坊),点击第一个站进入, 快速成为做挂达人。 DLL的远程注入技术是目前Win32病毒广泛使用的一种技术。使用这种技术的病毒体通常位 于一个DLL中,在系统启动的时候,一个EXE程序会将这个DLL加载至某些系统进程(如 Explorer.exe)中运行。这样一来,普通的进程管理器就很难发现这种病毒了,而且即使发 现了也很难清除,因为只要病毒寄生的进程不终止运行,那么这个DLL就不会在内存中卸载, 用户也就无法在资源管理器中删除这个DLL文件,真可谓一箭双雕哉。 记得2003年QQ尾巴病毒肆虐的时候,就已经有些尾巴病毒的变种在使用这种技术了。到了 2004年初,我曾经尝试着仿真了一个QQ尾巴病毒,但独是跳过了DLL的远程加载技术。直 到最近在学校论坛上看到了几位朋友在探讨这一技术,便忍不住将这一尘封已久的技术从我 的记忆中拣了出来,以满足广大的技术爱好者们。 必备知识 在阅读本文之前,你需要了解以下几个API函数: OpenProcess - 用于打开要寄生的目标进程。 VirtualAllocEx/VirtualFreeEx - 用于在目标进程中分配/释放内存空间。 WriteProcessMemory - 用于在目标进程中写入要加载的DLL名称。 CreateRemoteThread - 远程加载DLL的核心内容,用于控制目标进程调用API函数。 LoadLibrary - 目标进程通过调用此函数来加载病毒DLL。 在此我只给出了简要的函数说明,关于函数的详细功能和介绍请参阅MSDN。 示例程序 我将在以下的篇幅中用一个简单的示例Virus.exe来实现这一技术。这个示例的界面如下 图: 首先运行Target.exe,这个文件是一个用Win32Application向导生成的“Hello,World” 程序,用来作为寄生的目标进程。 然后在界面的编辑控件中输入进程的名称“Target.exe”,单击“注入DLL”按钮,这时候 Virus.exe就会将当前目录下的DLL.dll注入至Target.exe进程中。 在注入DLL.dll之后,你也可以单击“卸载DLL”来将已经注入的DLL卸载。 点这里下载示例程序 模拟的病毒体DLL.dll 这是一个简单的Win32 DLL程序,它仅由一个入口函数DllMain组成: C++代码 BOOL WINAPI DllMain HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved switch fdwReason case DLL_PROCESS_ATTACH: MessageBox NULL, _T DLL已进入目标进程。 , _T 信息 , MB_ICONINFORMATION ; break; case DLL_PROCESS_DETACH: MessageBox NULL, _T DLL已从目标进程卸载。 , _T 信息 , MB_ICONINFORMATION ; break; return TRUE; 如你所见,这里我在DLL被加载和卸载的时候调用了MessageBox,这是用来显示我的远程 注入/卸载工作是否成功完成。而对于一个真正的病毒体来说,它往往就是处理 DLL_PROCESS_ATTACH事件,在其中加入了启动病毒代码的部分: C++代码 case DLL_PROCESS_ATTACH: StartVirus ; break; 注入! 现在要开始我们的注入工作了。首先,我们需要找到目标进程: C++代码 DWORD FindTarget LPCTSTR lpszProcess DWORD dwRet 0; HANDLE hSnapshot CreateToolhelp32Snapshot TH32CS_SNAPPROCESS, 0 ; PROCESSENTRY32 pe32; pe32.dwSize sizeof PROCESSENTRY32 ; Process32First hSnapshot, pe32 ; do if

文档评论(0)

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档