检测注入dll的进程

逆向工程 dll 注射
2021-07-02 13:38:21

我想弄清楚如何检测注入 dll 的进程。我找到了这个线程,但我想不出一个简单的方法来解决它。

我想澄清我的意图:给定一个 pid - 如果该进程是否注入了 dll,我想返回一个答案。

我想转储一个进程的所有依赖项,然后将其与正在运行的进程进行比较 - 问题是依赖项加载了自己的 dll...

我听说 Antivirus 会比较校验和或类似的东西 - 但不明白到底是怎么回事。

1个回答

您可以递归地跟踪依赖项以找出哪些 DLL 是由 Windows 加载程序直接加载的。您可以创建一个imported modules list. 填写imported module list您在主 PE 的导入表中找到的每个模块。然后递归解析您以这种方式找到的所有 DLL 的导入表。您将拥有一个包含所有已导入 DLL 的列表。然后,只需将其与加载的模块列表进行比较。

您发现的差异可能是注入的 DLL 或动态加载的 DLL。

动态识别加载的DLL可能会有点更具挑战性,但识别那些一种方法是拆卸可执行文件和搜索呼叫LoadLibraryLoadLibraryEx等等。