方案https://github.com/jzksnsjswkw/smzdm-app
具体操作
项目说的
JustTrustMe + HttpCanary
我没安xposed也太麻烦
我发操作如下
安装HttpCanary 网上随便下一个
https://wwqm.lanzouu.com/i4Itd2ifowif
密码:8gbi
安装后安装证书,然后导出证书
本体抓包值得买app会无网络
所以套娃模式应用商店安装vmos
抓包方案1
20241218更新mumu的抓包图文教程连接使用小蓝鸟,小黄鸟不行:https://mumu.163.com/help/20240809/40912_1173300.html
抓包方案二
下面为备份参考教程以及链接
一,安卓11无法安装证书,可借助虚拟机例如VMOS
步骤:
本机需安装MT管理器,小黄鸟HttpCanay和安卓虚拟机vmos;
打开SSL证书设置选择导出根证书,类型System Trusted (.0);
导出的证书储存路径为:内部储存/HttpCanary/cert/
打开虚拟机VMOS,选择文件中转站—我要导入:MT管理器+目标APP+证书;
打开并赋予MT管理器root权限,刚刚导入的证书在VMOSfiletransferstatio目录下,将其复制到VMOS系统内:/system/etc/security/cacerts/目录下即可。无法挂载可尝试re管理器挂载读写。
返回本机启动小黄鸟,目标应用-设置VMOS-开启抓包
返回虚拟机-启动目标APP 即可
作者:上班摸鱼咕咕菌 https://www.bilibili.com/read/cv7526099/ 出处:bilibili
HttpCanary 抓包后找到
https://user-api.smzdm.com/checkin 的post请求
请求》预览里面 看sk 跟token有值的话就没问题了
然后再复制cookie 就行
总共需要sk token cookie三个值填写到下面的xxxxx位置
import hashlib
import operator
import random
import time
import requests
key = 'apr1$AwP!wRRT$gJ/q.X24poeBInlUJC'
user_tuple = (
{
'sk': '',
'token': '',
'cookie': '',
},
)
def md5(m: str) -> str:
return hashlib.md5(m.encode()).hexdigest()
def dict_to_query(a: list) -> str:
query_str = ''
for k, v in a:
query_str += f"{k}={v}&"
return query_str[:-1]
def get_sign(src: dict) -> str:
data = src.copy()
if 'sign' in data:
del data['sign']
# del key if value is ''
for k in list(data.keys()):
if not data[k]:
del data[k]
sorted_data = sorted(data.items(), key=operator.itemgetter(0))
m = dict_to_query(sorted_data) + f'&key={key}'
return md5(m).upper()
def get_headers_and_timestamp_wrapper():
timestamp = (int(time.time()) - random.randint(10, 20)) * 1000
def get_headers_and_timestamp(cookie: str):
headers = {
'User-Agent': 'smzdm_android_V10.4.26 rv:866 (Redmi Note 3;Android10;zh)smzdmapp',
'request_key': str(
random.randint(10000000, 100000000) * 10000000000 + int(time.time())
),
'Cookie': cookie,
'Content-Type': 'application/x-www-form-urlencoded',
}
return headers, timestamp
return get_headers_and_timestamp
get_headers_and_timestamp = get_headers_and_timestamp_wrapper()
def checkin(sk: str, token: str, cookie: str) -> bool:
url = 'https://user-api.smzdm.com/checkin'
headers, timestamp = get_headers_and_timestamp(cookie)
timestamp = int(time.time())
data = {
'weixin': '1',
'captcha': '',
'f': 'android',
'v': '10.4.26',
'sk': sk,
'touchstone_event': '',
'time': timestamp,
'token': token,
}
data['sign'] = get_sign(data)
res = requests.post(url, headers=headers, data=data).json()
print('checkin --->', res)
if res['error_code'] != '0':
raise Exception(res['error_msg'])
if '成功' in res['error_msg']:
return True
else:
return False
def reward(url: str, cookie: str) -> bool:
headers, timestamp = get_headers_and_timestamp(cookie)
data = {
'weixin': '1',
'time': timestamp,
'basic_v': '0',
'f': 'android',
'v': '10.4.26',
}
data['sign'] = get_sign(data)
res = requests.post(url, headers=headers, data=data).json()
print(url.split('/')[-1], '--->', res)
if res['error_code'] == '0':
return True
if res['error_code'] == '4':
return False
else:
raise Exception(res['error_msg'])
def all_reward(cookie: str) -> bool:
url = 'https://user-api.smzdm.com/checkin/all_reward'
return reward(url, cookie)
def extra_reward(cookie: str) -> bool:
url = 'https://user-api.smzdm.com/checkin/extra_reward'
return reward(url, cookie)
for user in user_tuple:
print(checkin(**user))
print(all_reward(user['cookie']))
print(extra_reward(user['cookie']))
然后添加任务计划到服务器家里nas 或者青龙面板里面 每天定时执行就行,需要python环境
近期评论