找回密码
  注册[Register]
查看: 922|回复: 9

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

[复制链接]
发表于 2022-9-26 21:59 | 显示全部楼层 |阅读模式
禁止求评分、诱导评分、互刷评分、互刷悬赏值,违规者封号处理。
禁止发布推广、邀请码、邀请链接、二维码或者有利益相关的任何推广行为。
所有非原创软件请发布在【精品软件区】,发帖必须按照本版块版规格式发帖。

最近某款小游戏爆火,大家都在熬夜点点,看广告想办法通关。论坛中也涌现出很多大佬开发小帮助大家通关过瘾的工具,js,c#,python版本的有
。这篇有用的易语言从Token的比较,然后开始从两个工具获取资金、跟数据论坛感兴趣的,查看自己的测试关于Python的文章,
最终成功在下面不断改进
代码由于是从网上摘取的,在阅读的文章中非常实际地用了,记下这个是大家提供的文章,只是实际操作。
再此声明:代码论坛学习讨论,如若用于不当大过、篡改行为,如若有不当行为,均请本人
处理,烦请管理员删帖,勿记,谢谢~
[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[1])
    while not token and data[0] < end_address:
        data = rpm(pid, data[0])
        token = pattern.search(data[1])
        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. 执行脚本


如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2022-9-26 22:31 | 显示全部楼层
沙发垫
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

发表于 2022-9-26 22:43 | 显示全部楼层

支持楼主,谢谢分享。
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2022-9-26 23:03 | 显示全部楼层
谢谢大佬
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2022-9-26 23:05 | 显示全部楼层
谢谢大牛
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2022-9-27 00:02 | 显示全部楼层

感谢楼主的分享
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2022-9-27 00:05 | 显示全部楼层
谢谢大佬分享
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2022-9-27 01:42 | 显示全部楼层
6666
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2022-9-27 01:43 | 显示全部楼层
感谢楼主分享
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2022-9-27 09:16 | 显示全部楼层
谢谢分享!
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

RSS订阅|手机版|小黑屋|大牛论坛 |我的广告

GMT+8, 2024-5-9 04:50 , Processed in 0.035140 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表