使用psutil库的process_iter()函数获取进程列表。
遍历进程列表,使用进程的name()函数判断是否为目标exe进程。
如果是目标exe进程,使用windll.kernel32库的OpenProcess()函数获取进程的句柄。
使用windll.kernel32库的GetModuleHandleA()函数获取进程的基地址。
输出基地址。
使用windll.kernel32库的CloseHandle()函数关闭进程的句柄。
import psutil
import ctypes
# 获取进程列表
processes = psutil.process_iter()
# 遍历进程列表,找到exe进程
for process in processes:
try:
if process.name() == 'WeChat.exe':
# 获取微信进程的PID
pid = process.pid
print('pid:', pid)
# 获取进程的句柄
handle = ctypes.windll.kernel32.OpenProcess(0x1F0FFF, False, pid)
# 获取进程的基地址
base_address = ctypes.windll.kernel32.GetModuleHandleA(None)
# 输出基地址
print('WeChat.exe的基地址:', hex(base_address))
# 关闭进程的句柄
ctypes.windll.kernel32.CloseHandle(handle)
except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess):
pass
输出内容
pid: 10724
WeChat.exe的基地址: 0x290b0000
完毕!!感谢您的收看
----------★★历史博文集合★★----------
我的零基础Python教程,Python入门篇 进阶篇 视频教程 Py安装py项目 Python模块 Python爬虫 Json Xpath 正则表达式 Selenium Etree CssGui程序开发 Tkinter Pyqt5 列表元组字典数据可视化 matplotlib 词云图 Pyecharts 海龟画图 Pandas Bug处理 电脑小知识office自动化办公 编程工具