DLL注入

本页使用了标题或全文手工转换
维基百科,自由的百科全书


DLL注入(英語:DLL injection)是一种涉及计算机信息安全的特殊编程技术,它可以强行使一个进程加载某个动态链接库以在其私有地址空间内运行指定代码(往往是恶意代码)。[1]DLL注入的常见手段是用外部DLL库覆盖一个程序原先的DLL库,目的是实现该程序的作者未预期的结果。[2][3]比如,注入的代码可以挂钩(Hook)系统消息或系统调用[4][5],以达到读取密碼框的内容等危险目的,而一般编程手段无法达成这些目的。[6]


能将任意代码注入任意进程的程序被称为DLL注入器(DLL injector)。

实现方式

Windows平台

  • 先利用恶意TSR程序调用恶意DLL,在恶意DLL初始化时,由TSR定位待注入目标程序并将其句柄传递至DLL中的注入函数,注入函数会绕过安全权限并向目标程序的私有地址空间申请一块预留空间,并在该空间内展开后续恶意操作[7]

Unix平台

参考资料

  1. ^ James Shewmaker. Analyzing DLL Injection (PDF). GSM Presentation. Bluenotch. 2006 [2008-08-31]. (原始内容 (PDF)存档于2008-12-03). 
  2. ^ Iczelion. Tutorial 24: Windows Hooks. Iczelion's Win32 Assembly Homepage. August 2002 [2008-08-31]. (原始内容存档于2008-08-01). 
  3. ^ Rocky Pulley. Extending Task Manager with DLL Injection. CodeProject. CodeProject. 2005-05-19 [2008-09-01]. (原始内容存档于2009-02-06). 
  4. ^ Nasser R. Rowhani. DLL Injection and function interception tutorial. CodeProject. CodeProject. 2003-10-23 [2008-08-31]. (原始内容存档于2008-06-15). 
  5. ^ Ivo Ivanov. API hooking revealed. CodeProject. CodeProject. 2002-12-02 [2008-08-31]. (原始内容存档于2008-10-14). 
  6. ^ Robert Kuster. Three Ways to Inject Your Code into Another Process. CodeProject. CodeProject. 2003-08-20 [2008-08-31]. (原始内容存档于2008-07-20). 
  7. ^ Tutorial 24: Windows Hooks. [2018-04-14]. 原始内容存档于2008-08-01. 

Category:计算机程序库 Category:執行緒 Category:Windows管理