DLL注入

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


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

实现方式

Windows平台

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

参考资料

  1. James Shewmaker. (PDF). GSM Presentation. Bluenotch. 2006 [2008-08-31]. (原始内容 (PDF)存档于2008-12-03).
  2. Iczelion. . Iczelion's Win32 Assembly Homepage. August 2002 [2008-08-31]. (原始内容存档于2008-08-01).
  3. Rocky Pulley. . CodeProject. CodeProject. 2005-05-19 [2008-09-01]. (原始内容存档于2009-02-06).
  4. Nasser R. Rowhani. . CodeProject. CodeProject. 2003-10-23 [2008-08-31]. (原始内容存档于2008-06-15).
  5. Ivo Ivanov. . CodeProject. CodeProject. 2002-12-02 [2008-08-31]. (原始内容存档于2008-10-14).
  6. Robert Kuster. . CodeProject. CodeProject. 2003-08-20 [2008-08-31]. (原始内容存档于2008-07-20).
  7. . [2018-04-14]. 原始内容存档于2008-08-01.

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

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.