Hshuai 发表于 2020-4-1 18:24

记录一次抓包修改WX/ZFB/QQ步数过程(附源码下载)

前段时间,看到微信运动上有各种大神一天几万步的,尤其是那些背景图自带嘲讽的占领了微信封面。就在想:“你们整天不睡觉么”?然后好奇的我,在搜索引擎上各种爬梯子,终于找到了一款网页刷步工具运动宝盒刷步数,很可惜,就用了一次就失效了,话说作为菜鸟程序员出身的我,当然不能忍。{:1_926:}{:1_926:}{:1_926:}
以上都是废话,进入正题,此方法简单易懂,技术成本低,大体思路就是利用抓包工具抓取运动软件同步微信步数接口,通过模拟数据来请求微信,达到修改目的。
工具:
1.抓包工具(就用常用的Flidder)怎么用的话 可以百度 https://blog.csdn.net/ohmygirl/article/details/17846199
2. 运动软件 (就先拿乐心健康做案例,其实市面上的软件都大同小异)
方法:
1.下载乐心健康app
2.注册 登录 数据共享关联微信 支付宝

3.开启flidder抓取接口

我们摆几下手,就能看到有一条数据同步的接口,点击查看

step就是我们要同步上传的步数,OK 大功告成
4.模拟接口运行
关于模拟接口,有各种模拟办法,我们就用最简单的js来做吧,随便用个express搭个服务器写个接口就行,其中填入自己抓的数据值到对应字段里
router.post('/proxy', function(req, res, next){
    var bodyData={list: [{
            DataSource: 2,
            active: 1,
            calories: 0.12,
            created: new Date().format("yyyy-MM-dd hh:mm:ss"),
            dataSource: 2,
            dayMeasurementTime: new Date().format("yyyy-MM-dd"),
            deviceId: "M_NULL",
            distance: 51,
            exerciseTime: 0,
            id: "输入您抓取的对应的id",
            isUpload: 0,
            measurementTime: new Date().format("yyyy-MM-dd hh:mm:ss"),
            priority: 0,
            step: Number(req.body.bushu),//这里就是您要同步的步数
            type: 2,
            updated: new Date().getTime(),
            userId: "输入您抓取的userId"
      }]};
    var url="输入您抓取的接口地址“;
/*接口地址会加杂一些参数,依据实际情况填入即可,例如”https://sports.lifesense.com/sport_service/sport/sport/uploadMobileStepV2?country=%E4%B8%AD%E5%9B%BD&city=%E6%88%90%E9%83%BD&cityCode=510100&timezone=Asia%2FShanghai&latitude=30.570562&os_country=CN&channel=xiaomi&language=zh&openudid=&platform=android&province=%E5%9B%9B%E5%B7%9D%E7%9C%81&appType=6&requestId=6fe218d80aa74c59b66c4725e9bc13ec&countryCode=&systemType=2&longitude=104.062329&devicemodel=MI+9&area=CN&screenwidth=1080&os_langs=zh&provinceCode=510000&promotion_channel=xiaomi&version=4.5&areaCode=510107&network_type=wifi&osversion=10&screenheight=2135"*/

    axios.post(url,bodyData,{
      headers:{
            "Cookie": "Cookie值",
            "Content-Type": "application/json; charset=utf-8",
            "User-Agent": "Dalvik/2.1.0 (Linux; U; Android 10; MI 9 MIUI/V11.0.5.0.QFACNXM)",//这里有涉及手机型号
            "Host": "sports.lifesense.com",
            "Connection": "Keep-Alive",
            "Accept-Encoding": "gzip",
            "Content-Length": "352",
      },
    }).then(function(succ){
      console.log(succ.data);//处理成功的函数 相当于success
      res.send(succ.data)
    }).catch(function(error){
      console.log(error)//错误处理 相当于error
      res.send(error)
    })

写了个简单的页面来调用

输入步数,我们测试一下,25133 提交成功!

5.查看修改结果
在微信查看一下结果!

这图够嘲讽吧{:1_929:}
支付宝看一下结果


当然,这个只能修改你抓到的账户哈!简单的js接口,源码地址:https://github.com/shuaimoumou/editStep.git, 仅供学习!转载请注明出处哈,当然你不写我也没话说!

MillerRabins 发表于 2020-7-23 19:12

抓包之后用python request提交
但是只能最高修改一万步,这是为什么?
import requests
import time
import urllib3
import json

def change_Steps(steps):
    url = 'https://sports.lifesense.com/sport_service/sport/sport/uploadMobileStepV2?country=%E4%B8%AD%E5%9B%BD&city=%E9%95%BF%E6%B2%99&cityCode=430100&timezone=Asia%2FShanghai&latitude=27.969713&os_country=CN&channel=huawei&language=zh&openudid=&platform=android&province=%E6%B9%96%E5%8D%97%E7%9C%81&appType=6&requestId=1cda94c5f7b7468c9419beb024b558cf&countryCode=&systemType=2&longitude=112.046989&devicemodel=HRY-AL00Ta&area=CN&screenwidth=1080&os_langs=zh&provinceCode=430000&promotion_channel=huawei&rnd=878f5f5e&version=4.6.2&areaCode=430182&requestToken=32b8a19b6cc9c5c9ba4e31aefbb00359&network_type=wifi&osversion=10&screenheight=2259'
    bodyData = {
      "list": [
            {"active": 1,
             "calories": 0,
             "created": time.strftime("%Y-%m-%d %H:%M:%S"),
             "dataSource": 2,
             "dayMeasurementTime": time.strftime("%Y-%m-%d"),
             "deviceId": "M_NULL",
             "distance": steps // 3,
             "id": "0536c843f14641e6a7221d6d8ed58fe8",
             "isUpload": 1,
             "measurementTime": time.strftime("%Y-%m-%d %H:%M:%S"),
             "priority": 0,
             "step": steps,
             "type": 2,
             "updated": int(round(int(time.time()) * 1000)),
             "userId": "26799845",
             "DataSource": 3,
             "exerciseTime": 0
             }
      ]
    }
    bodyData = json.dumps(bodyData)
    headers = {
      'Cookie': 'session=%7B%22accessToken%22%3A%225ff6daa624c74542abe9c4576b6120c5%22%2C%22appType%22%3A6%2C%22expireAt%22%3A1598090617906%2C%22loginId%22%3A%2226799845%22%2C%22userType%22%3A99%2C%22gray%22%3Afalse%7D; appType2=6; accessToken2=5ff6daa624c74542abe9c4576b6120c5; expireAt2=1598090617906; loginId2=26799845; userType2=99; gray2=false; session=%7B%22accessToken%22%3A%225ff6daa624c74542abe9c4576b6120c5%22%2C%22appType%22%3A6%2C%22expireAt%22%3A1598090617906%2C%22loginId%22%3A%2226799845%22%2C%22userType%22%3A99%2C%22gray%22%3Afalse%7D; userType2=99; expireAt2=1598090617906; accessToken=D2A6AFB93531605DBE56DC2EEE74C4C9A2A9D448D7091FD682B71C94EA82651DACF21FA1EE36EF7A3C242B9712DA0194A460995D3611B4A14377E3900DF9806005FF025EE32D40925CDD613E04A72BA53A1CEA85B62B1E5876B669542B221078.FC800F8B2F9A81A037BB247BA981EB947D2D665249B3B78646975B1A1A48AF2B; accessToken2=5ff6daa624c74542abe9c4576b6120c5; loginId2=26799845; gray2=false; appType2=6',
      "Content-Type": "application/json; charset=utf-8",
      "User-Agent": "Dalvik/2.1.0 (Linux; U; Android 10; HRY-AL00Ta Build/HONORHRY-AL00Ta)",
      "Host": "sports.lifesense.com",
      "Connection": "Keep-Alive",
      "Accept-Encoding": "gzip",
      "Content-Length": "390"
    }
    urllib3.disable_warnings()
    response = requests.post(url, data=bodyData, headers=headers, verify=False)
    data = json.loads(response.text)
    print(data["code"], end=' ')
    print(data["msg"], end=' ')
    print(len(data["data"]["pedometerRecordHourlyList"]), end=' ')
    print(data["data"]["pedometerRecordHourlyList"]['step'].split(','))
    # print(int(data["data"]["pedometerRecordHourlyList"]["step"].split(',')))

if __name__ == '__main__':
    change_Steps(29000)


神灵小将军 发表于 2020-7-18 17:46

本帖最后由 神灵小将军 于 2020-7-18 17:58 编辑

折腾好久 总算成功了
1、安装node.js
2、下载github里面的源码
3、下载fiddler,在工具-选项-HTTPS打开解密HTTPS流量,连接处允许远程计算机连接
4、手机跟电脑在同一局域网内,手机设置代{过}{滤}理经过电脑的IP
5、捉包
6、更改github里面的源码index.js里的内容,注意:post里的内容也要更改
7、在作者提供的源码文件夹下 以管理员模式运行CMD
8、安装express          npm install express --save
9、装一下Express 应用生成器   npm install express-generator -g
10、安装应用   npm install
11、启动express服务器    npm start
12、网页输入:http://localhost:1000/

紫灬曦 发表于 2020-4-1 18:54

哈哈,这图够嘲讽,拿走去嘲讽别人去咯,谢谢

港湾999 发表于 2020-4-1 19:17

小白来学习了,支持老师,老师辛苦了,感谢分享:handshake

Alfred斯斯 发表于 2020-4-1 19:20

学习学习   想问问爱疯的thor能否实现手机抓这个包?

wen007 发表于 2020-4-1 19:33

修改成功,可是数据不同步微信和支付宝害

lzspain 发表于 2020-4-1 19:58

网页版不是还能用吗?

游泳的猪 发表于 2020-4-1 19:59

好像很复杂的操作呀!!!

bjxiaoyao 发表于 2020-4-1 20:17

很好,思路清奇啊,感谢分享

无知小白 发表于 2020-4-1 20:27

我看到抓包看到WX和ZFB还以为能修改余额呢。:lol

Hshuai 发表于 2020-4-1 20:28

紫灬曦 发表于 2020-4-1 18:54
哈哈,这图够嘲讽,拿走去嘲讽别人去咯,谢谢

在动物园拍的羊驼{:1_926:}
页: [1] 2 3 4 5 6 7 8
查看完整版本: 记录一次抓包修改WX/ZFB/QQ步数过程(附源码下载)