我有一些问题。我将尝试获取我机器上所有进程的所有模块(dll 文件)。我尝试在 CMD 中执行此命令:
tasklist /m
但这是 64 位系统的问题。如果您在 64 位机器上运行 32 位程序,它不会列出所有模块,仅
ntdll.dll, wow64.dll, wow64win.dll, wow64cpu.dll
然后我尝试使用 pywin32 (win32api) 使用 Python 脚本执行此操作。
这是代码:
import win32security,win32file,win32api,ntsecuritycon,win32con,win32process
processes = win32process.EnumProcesses()
for pid in processes:
dll_list = []
try:
if pid:
print('pid:', pid)
ph = win32api.OpenProcess(win32con.MAXIMUM_ALLOWED, False, pid)
dll = win32process.EnumProcessModules(ph)
for dll_name in dll:
dll_name_norm = win32process.GetModuleFileNameEx(ph, dll_name)
dll_list.append(dll_name_norm)
print("dll_list: ", dll_list)
print("--------------")
except:
print("Error")
print("--------------")
但结果是一样的。=(请帮我解决这个问题,我如何查看所有 dll 文件,由每个进程加载。
PS 它只能是标准的 Windows 工具,如命令行、任务列表(不是 ListDlls、Process Explorer 或相同的东西)或 Python 中的脚本。
十分感谢!