python找.exe进程基地址的方法(以微信为例子)

2023-12-20 14:03:37

使用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自动化办公 编程工具

文章来源:https://blog.csdn.net/gxz888/article/details/135103178
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。