第44章 InjDILexe: DLL注入专用工具
本文最后更新于:2022年5月27日 下午
第44章InjDILexe: DLL注入专用工具
我编写了一个InjDll.exe程序,使用该程序可以向目标进程(Target)注入或卸载指定的DLL文件。本章将向大家介绍这一DLL注入专用工具。
44.1 InjDll.exe
InjDll.exe是前面练习示例中经常使用的程序,我对源代码进行了调整并添加了一些功能,现在正式发布供大家使用。
※ InjDll.exe程序是公幵的,大家可以自由使用。InjDll.exe程序默认支持Windows 2000以上版本的操作系统(不支持Windows 9X系列),并且支持32位/64位操作系统(请根据操作系统选用合适的版本)。
在各平台(32/64位)进行DLL注入时请注意以下几点:
-
若目标进程为32位:Injector&Dll —全为32位(PE32格式)。
-
若目标进程为64位:Injector & D11 ->全为64位(PE32+格式)。
由于32/64位进程在64位OS中均可运行,所以需要先查看目标进程的PE文件格 式,再选用合适的注入程序(InjDll32/InjDll64 )和DLL。
44.1.1使用方法
使用方法如图44-1所示。

InjDll32.exe是一个控制台程序,它接收3个参数,各参数的含义说明如下
1 | |
InjDll64.exe (64位版本)的使用方法与InjDll32.exe ( 32位版本)一样。
44.1.2使用示例
示例1:向PID为1032的进程注入c:\work\dummy32.dll文件(参考图44-2)
示例2:向旧进程注入当前目录下的dummy32.dll文件(参考图44-3)。
示例3:向所有进程注入c:\work\dummy.dll文件(参考图44-4)
卸载DLL文件时,用-e选项替换-i选项即可。
44.1.3注意事项
(1) 由于采用了执行远程线程调用LoadLibraryO的工作方式,所以如果kemel32.dll未加载到目标进程,注入/卸载操作将失败。
(2) 向访问权限受限的(受保护的)进程、或应用了反注入技术的进程进行注入/卸载操作时可能失败。
(3)原则上,进行N次注入操作后,必须执行相同次数的卸载操作,才能将相关DLL文件完全卸载。
(4) 注入前先查看目标进程的PE文件格式( 32位的PE32还是64位的PE32+ ),然后再选择相应的注入程序(InjDll32.exe、InjDll64.exe )与DLL文件(32位的PE32、64位的PE32+)。