zoukankan      html  css  js  c++  java
  • python修改内存,(修改植物大战僵尸)

    import win32process # 进程模块
    import win32con # 系统定义
    import win32api # 调用系统模块
    import ctypes # c语言类型
    import win32gui #界面
    import time
    
    # 系统常量,标识最高权限打开一个进程
    PROCESS_ALL_ACCESS = (0x000F0000|0x00100000|0xFFF) # |位运算, 0x 十六进制
    
    window = win32gui.FindWindow("MainWindow","植物大战僵尸中文版") # 查找窗体
    
    # 根据窗体抓取进程编号(pid 是进程编号 hid和pid一般描述一个进程信息)
    hid,pid = win32process.GetWindowThreadProcessId(window)
    
    # phand 打开一个进程(参数意思是使用最高权限非安全打这个进程)
    phand = win32api.OpenProcess(PROCESS_ALL_ACCESS,False,pid)
    print(phand)
    # c语言整数类型,读取数据
    date = ctypes.c_long()
    
    # 调用系统内核模块(Kerne123.dll windows内核)
    mydll = ctypes.windll.LoadLibrary("C:\Windows\System32\kernel32.dll")
    
    
    while True:
        # 读取内存(“4”表示占4个字节,types.byref(date)表示转递地址信息,写入的结果到date中)
        # int(phand)打开的进程编号   “244866760”需要读取的内存的地址
        mydll.ReadProcessMemory(int(phand), 0x411410192, ctypes.byref(date), 4, None)
    
        # 读内存 (可以获取内存中对应的数据)
        print(date.value)
    
        if date.value <2450:
    
    
            newdata = ctypes.c_long(2450) # 设定修改的数据
            mydll.WriteProcessMemory(int(phand), 0x411410192, ctypes.byref(newdata), 4, None)
        time.sleep(1)

    utf-8

    import win32process
    import win32con
    import win32api 
    import ctypes 
    import win32gui
    import time
    
    PROCESS_ALL_ACCESS = (0x000F0000|0x00100000|0xFFF)
    
    window = win32gui.FindWindow("MainWindow","植物大战僵尸中文版")
    
    
    hid,pid = win32process.GetWindowThreadProcessId(window)
    print(pid)
    
    phand = win32api.OpenProcess(PROCESS_ALL_ACCESS,False,pid)
    print(phand)
    
    date = ctypes.c_long()
    
    mydll = ctypes.windll.LoadLibrary("C:\Windows\System32\kernel32.dll")
    
    while True:
        mydll.ReadProcessMemory(int(phand), 0x12ED28D0, ctypes.byref(date), 4, None)
        print(date.value)
    
        if date.value <2450:
            print("modify")
            newdata = ctypes.c_long(2450)
            mydll.WriteProcessMemory(int(phand), 0x12ED28D0, ctypes.byref(newdata), 4, None)
        time.sleep(5)
  • 相关阅读:
    小米手机做USB电脑摄像头啦,亲测可用,附有详细教程!
    【DIY文章列表标签】dt_gry_list
    Oracle 10g 设置 PL/SQL 远程
    关于硬盘“4K扇区”对齐的查看与设置方法
    oracle数据误操作恢复【flashback闪回操作】
    CENTOS下安装LNMP环境随笔
    深喉咙使用心得(陆续更新ing....)
    CENTOS6.3环境下安装VSFTPD 便于开通FTP功能随笔
    MYSQL/SQL_SERVER/ORACLE三种数据库自动备份方法
    U盘安装 ubuntu 12.04随笔
  • 原文地址:https://www.cnblogs.com/sea-stream/p/10804187.html
Copyright © 2011-2022 走看看