第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
2
3
4
5
6
7
8
9
10
11
<procname|pid|*>
procname Process name (ex: explorer.exe, notepad.exe 等)
pid Process ID
* All Processes

<-i|-e>
-i Injection Mode
-e Ejection Mode


<dll path> DLL File Path (relative or full)

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+)。


第44章 InjDILexe: DLL注入专用工具
https://m0ck1ng-b1rd.github.io/1999/04/04/逆向工程核心原理/第44章 InjDll.exe:DLL注入专用工具/
作者
何语灵
发布于
1999年4月4日
许可协议