吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4464|回复: 39
收起左侧

[原创] python读取其它进程的字符串信息或注册码

  [复制链接]
无闻无问 发表于 2021-4-7 13:38
本帖最后由 无闻无问 于 2021-4-7 13:58 编辑

写下自己的收获。如有不当,请大家指正,谢谢!
如有违规,请管理修正,谢谢!

自己写的简单的弹窗程序,测试获取弹窗的内容:


测试软件运行图.png


od找弹窗字符串内容位置:


od字符串位置.png



进程pid:


pid.png


以下是代码:
呵呵呵,主要参照网上大神的例子,修改修改而成:

在Thonny+win7中测试成功……


[Python] 纯文本查看 复制代码
import ctypes 
from ctypes import wintypes 

kernel32 = ctypes.WinDLL('kernel32', use_last_error=True) 

ERROR_PARTIAL_COPY = 0x012B 
PROCESS_VM_READ = 0x0010 

SIZE_T = ctypes.c_size_t 
PSIZE_T = ctypes.POINTER(SIZE_T) 

def _check_zero(result, func, args): 
    if not result: 
     raise ctypes.WinError(ctypes.get_last_error()) 
    return args 

kernel32.OpenProcess.errcheck = _check_zero 
kernel32.OpenProcess.restype = wintypes.HANDLE 
kernel32.OpenProcess.argtypes = (
    wintypes.DWORD, # _In_ dwDesiredAccess 
    wintypes.BOOL, # _In_ bInheritHandle 
    wintypes.DWORD) # _In_ dwProcessId 

kernel32.ReadProcessMemory.errcheck = _check_zero 
kernel32.ReadProcessMemory.argtypes = (
    wintypes.HANDLE, # _In_ hProcess 
    wintypes.LPCVOID, # _In_ lpBaseAddress 
    wintypes.LPVOID, # _Out_ lpBuffer 
    SIZE_T,   # _In_ nSize 
    PSIZE_T)   # _Out_ lpNumberOfBytesRead 

kernel32.CloseHandle.argtypes = (wintypes.HANDLE,)


exe_pid=int(input('请输入程序PID:'))
buf = (ctypes.c_char * 21)() 
nread = SIZE_T() 
hProcess = kernel32.OpenProcess(PROCESS_VM_READ, False, exe_pid) 
kernel32.ReadProcessMemory(hProcess, 0x4031B0, buf, 21, ctypes.byref(nread)) 
kernel32.CloseHandle(hProcess)
str_byte=bytes(buf)
str_ok=str(str_byte,'gbk')

str_utf=str_ok.encode('utf-8')
print('gbk:',str_ok)
print('utf-8:',str_utf.decode('utf-8'))





运行变量:

变量.png


成功图:

成功图.png


不得不感叹,Python这东西能干的事真多……
附件含源代码和测试程序,密码:52pojie

52pojie.zip (7.1 KB, 下载次数: 64)

免费评分

参与人数 10威望 +1 吾爱币 +30 热心值 +9 收起 理由
haoren + 1 + 1 我很赞同!
Hmily + 1 + 20 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
liko7 + 1 + 1 我很赞同!
plasd + 1 我很赞同!
wangfs111 + 1 + 1 我很赞同!
陈世界 + 1 + 1 我很赞同!
zeknight + 1 python上手确实简单,而且可以做很多事情。
fanvalen + 1 + 1 我很赞同!
朱朱你堕落了 + 3 + 1 大佬牛B!
杨辣子 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

pojie6 发表于 2021-4-8 09:36
刚想研究这个从内存读取就来个完整例子,太感谢了! 就是例子中的
kernel32.OpenProcess.errcheck = _check_zero
kernel32.OpenProcess.restype = wintypes.HANDLE
kernel32.OpenProcess.argtypes = (
    wintypes.DWORD, # _In_ dwDesiredAccess
    wintypes.BOOL, # _In_ bInheritHandle
    wintypes.DWORD) # _In_ dwProcessId    感觉api初始设置写法有些费神
xtynkwxf 发表于 2021-4-12 21:29
报这个错误:
    str_ok = str(str_byte, 'gbk')
UnicodeDecodeError: 'gbk' codec can't decode byte 0xae in position 2: illegal multibyte sequence
yingsummery 发表于 2021-4-7 14:18
phnix780506 发表于 2021-4-7 14:41
学习了,谢谢
C哥888 发表于 2021-4-7 14:44
学习了,谢谢
dukeimp 发表于 2021-4-7 15:08
学习到了,不错不错
头像被屏蔽
算法分析 发表于 2021-4-7 15:08
提示: 作者被禁止或删除 内容自动屏蔽
朱朱你堕落了 发表于 2021-4-7 15:24
大佬,挺会玩啊,啥姿势都有,啥姿势都会。
方政委 发表于 2021-4-7 15:50
python还有这操作的?学习了
zc199068 发表于 2021-4-7 17:17
这个好玩
sam喵喵 发表于 2021-4-7 17:19
win10能实验成功吗
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-24 04:09

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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