全家Fa米家app抓包——做自动签到领Fa米粒

2022-09-02 23:59:54 浏览数 (1)

目录

简介

代码

效果

app下载

福利

简介

通过小黄鸟抓包Fa米家App,发现没有什么校验,用模拟请求直接可以重发。。。

  • 账号验证是通过token字段;
  • 设备标识用deviceId;
  • 等等... 基本上必须的几个参数就: { "blackbox": "tdfpeyxxxx", "device_id": "2f35xxxx", "fmversion": "3.0.2", "os": "android", "token": "eyneWxxxx", "useragent": "okhttp/4.7.2"}

代码

这就好办了,可以做一个自动Fa米粒签到(可以换商品),或者其他好玩的功能。 提供几个粗糙的函数:

代码语言:javascript复制
import requests class Fmapp:    def __init__(self) -> None:        self.base_headers = {            'Host': 'fmapp.chinafamilymart.com.cn',            'blackBox': '',            'token': '',            'deviceId': '',            'User-Agent': 'okhttp/4.7.2',            'Content-Type': 'application/json',            'loginChannel': 'app',            'channel': '333',            'fmVersion': '3.0.2',            'os': 'android',        }     def check_in(self):        '''        签到        '''        url = 'https://fmapp.chinafamilymart.com.cn/api/app/market/member/signin/sign'        headers = self.base_headers.copy()        res = requests.post(url=url, headers=headers).json()        print(res)      def verify_code(self, mobile, distinctId):        '''        请求发送短信验证码        '''        url = 'https://fmapp.chinafamilymart.com.cn/api/app/member/verifyCode'        headers = self.base_headers.copy()        data = {            "mobile": mobile,            "firstSend": True,            "distinctId": distinctId,            "newVersion": True        }        res = requests.post(url=url, json=data, headers=headers).json()        print(res)        if res['code'] == '200':            return res['data']        return None     def login(self, mobile, code, distinctId):        '''        短信验证码登录        '''        url = 'https://fmapp.chinafamilymart.com.cn/api/app/login'        headers = self.base_headers.copy()        data = {            "mobile": mobile,            "verifyCode": code,            "openId": "",            "openChannelCd": "1",            "grantTypeCd": "1",            "distinctId": distinctId,            "newVersion": True,            "unionId": "",            "jpushId": "120c83f760da1764565"        }        res = requests.post(url=url, json=data, headers=headers).json()        print(res)        if res['res'] == '200':            return res['data']['token']        return None      def member_info(self):        '''        获取用户详情        '''        url = 'https://fmapp.chinafamilymart.com.cn/api/app/member/info'        headers = self.base_headers.copy()        res = requests.post(url=url, headers=headers).json()        print(res)        if res['code'] == '200':            return True        return False     def mili_detail(self):        '''        获取Fa米粒详情        '''        url = 'https://fmapp.chinafamilymart.com.cn/api/app/member/v2/mili/detail'        headers = self.base_headers.copy()        data = {"pageNo":1, "pageSize":10}        res = requests.post(url=url, json=data, headers=headers).json()        print(res)        total = -1        if res['code'] == '200':            total = res['data']['total']        return total      def process(self):        # 需要抓包补全        blackBox = 'tdfp'        # 需要抓包补全        deviceId = '2f356'        # 需要抓包补全        distinctId = "cb19df02c32d2079"        # 可用手机验证码登录获取,或者手动抓包补全        token = 'eyJhbG'        self.base_headers['token'] = token        self.base_headers['blackBox'] = blackBox        self.base_headers['deviceId'] = deviceId         # # 手机号        # mobile = ""        # # 收到的验证码        # code = self.verify_code(mobile, distinctId)        # if not code:        #     return        # token = self.login(mobile, code, distinctId)        # if not token:        #     return        # self.base_headers['token'] = token                 self.member_info()        self.check_in()        self.mili_detail() Fmapp().process()

效果

签到:

个人资料:

米粒信息:

app下载

  • 没有小黄鸟的童鞋看这里:小黄鸟过检版.apk - 蓝奏云
  •  没有Fa米家的童鞋看这里:全家Fa米家.apk - 蓝奏云

福利

然后就可以在挂载服务器上每天自动运行了。 没有服务器的可以看看这个腾讯云的轻量服务器,很便宜,一年只需65元,它不香吗?: 详情:云产品特惠专区

0 人点赞