hiroman 发表于 2022-9-26 21:59

某小游戏从内存读取令牌,Python版

最近某款小游戏爆火,大家都在熬夜点点,看广告想办法通关。论坛中也涌现出很多大佬开发小帮助大家通关过瘾的工具,js,c#,python版本的有
。这篇有用的易语言从Token的比较,然后开始从两个工具获取资金、跟数据论坛感兴趣的,查看自己的测试关于Python的文章,
最终成功在下面不断改进
代码由于是从网上摘取的,在阅读的文章中非常实际地用了,记下这个是大家提供的文章,只是实际操作。
再此声明:代码论坛学习讨论,如若用于不当大过、篡改行为,如若有不当行为,均请本人
处理,烦请管理员删帖,勿记,谢谢~
import ctypes
from ctypes import *
from ctypes.wintypes import *
import json
import psutil
import re
import sys
import win32api
from win32con import PROCESS_ALL_ACCESS

k32 = WinDLL('kernel32')
k32.OpenProcess.restype = HANDLE
k32.OpenProcess.argtypes = DWORD, BOOL, DWORD
k32.ReadProcessMemory.restype = BOOL
k32.ReadProcessMemory.argtypes = HANDLE, LPVOID, LPVOID, c_size_t, POINTER(c_size_t)

BUF_SIZE = 1024 * 500
prodess_name = '????.exe'
pattern = re.compile('(?<=("token":"))[.\\w]*?(?=(","))')

def get_proc_pid():
    for proc in psutil.process_iter():
      if proc.name() == prodess_name:
            p_proc = psutil.Process(proc.pid)
            return p_proc.parent().pid

def rpm(pid, address):
      process = k32.OpenProcess(PROCESS_ALL_ACCESS, False, pid)
      buf = create_string_buffer(BUF_SIZE)
      s = c_size_t()
      mem_data = k32.ReadProcessMemory(process, address, buf, BUF_SIZE, byref(s))
      return address + BUF_SIZE, str(buf.raw)

def get_app_token(pid):
    start_address = 0x05890000 # 0x00380000 0x05890000
    end_address = 0xFF9F0000
    data = rpm(pid, start_address)
    token = pattern.search(data)
    while not token and data < end_address:
      data = rpm(pid, data)
      token = pattern.search(data)
      if token:
            break
    token = token.group()
    print('当前Token:\n' + token + '\n')
    return token

if __name__ == '__main__':
    pid = get_proc_pid()
    if not pid:
      print('请确认游戏已打开')
      sys.exit()
    token = get_app_token(pid)

环境是
1。python39
2. win10
操作步骤
1. 保存代码
2. 替换prodes_name
3.打开游戏
4. 执行脚本


yincongboy 发表于 2022-9-26 22:31

沙发垫

3243646391 发表于 2022-9-26 22:43


支持楼主,谢谢分享。

5520933 发表于 2022-9-26 23:03

谢谢大佬

sssyqhd 发表于 2022-9-26 23:05

谢谢大牛

czv2513655 发表于 2022-9-27 00:02


感谢楼主的分享

xianren 发表于 2022-9-27 00:05

谢谢大佬分享

厌丼 发表于 2022-9-27 01:42

6666

yuutr 发表于 2022-9-27 01:43

感谢楼主分享

870225231 发表于 2022-9-27 09:16

谢谢分享!
页: [1]
查看完整版本: 某小游戏从内存读取令牌,Python版