蘑菇丁自动签到

目的:利用Win10的任务计划和Python脚本实现蘑菇丁的自动签到

由于蘑菇丁只有app能签到,所以下面使用模拟器来进行分析

因为有个签到的数据ID无法确定是唯一的,大家还是学下怎么抓包吧

需要的工具和环境:

夜神模拟器(你有其它模拟器也行,下面一样的操作)

蘑菇丁app

Burp Site(抓包工具)

Java环境(这个和Burp Site配套的,如果你会用其他的抓包软件就不需要)

python环境

win10 的任务计划程序

分析:

1、设置好burpsite

不要设置环回地址,使用本机IP(我这里是192.168.136.1)端口就习惯8080吧

扫描二维码关注公众号,回复: 8630381 查看本文章

2、打开模拟器

先设置虚拟定位,为了能在进蘑菇丁后准确定位到你实习的岗位(其它模拟器虚拟定位一样在窗口右边)

模拟器上百度搜索蘑菇丁

选择普通下载

下载完后确定能登陆后设置代理

进入WLAN修改代理IP(长按几秒就出来了)

勾上高级选项后选择手动,填写刚刚设置的代理ip和端口号

保存后上百度测试

成功

3、抓包查看蘑菇丁的登陆信息

打开intercept准备抓包

打开蘑菇丁输入账号密码

登陆信息get!,还是明文传输

记录好url、head头部和post数据,后面要用python实现脚本登陆

4.抓包查看签到的信息

前面设置好虚拟定位后,在签到里再打一次你实习岗位的地址就能定位成功了

同样记录下所有信息

ok!下面就来实现自动登陆吧

python代码:(写中文的地方都需要填上正确信息)

import urllib.request as ur
import ssl
import json
import time
def signIn(token,tpye,context):
    data_dict={
        "device":"Android",
        "address":"实习的详细地址",
        "description":"",
        "longitude":"上面地址的经度",
        "latitude":"上面地址的纬度",
        "planId":"抓签到包上显示的planID",
        "type":tpye 
    }
    url = 'https://api.moguding.net:9000/attendence/clock/v1/save'
    headers = {
        'Authorization': token,
        'Content-Type': 'application/json; charset=UTF-8',
        'roleKey': 'student'
    }
    data=json.dumps(data_dict)
    requests=ur.Request(url=url,data=data.encode("utf-8"),headers=headers)
    try:
        if json.loads(ur.urlopen(requests,context=context).read().decode())['code']==200:
            pass
        else:
            with open('C:/Users/Administrator/Desktop/signlog.txt', 'a+') as f:
                 f.write(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime())+'签到失败\n')
    except Exception as e:
        pass
def login(type,context):
    login_data = {
        "phone":"登陆的电话",
        "password":"登陆的密码",
        "uuid":"",
        "loginType":"android"
    }
    request_login = ur.Request(
        url = 'https://api.moguding.net:9000/session/user/v1/login',
        data =json.dumps(login_data).encode(),
        headers = {
            'Content-Type':'application/json; charset=UTF-8'
        }
    )
    try:
        token = json.loads(ur.urlopen(request_login,context=context).read().decode())['data']['token']
        if token:
            signIn(token,type,context)
    except Exception as e:
        datad = '<urlopen error Remote end closed connection without response>'
        if datad==str(e):
            print('网络连接超时')
        else:
            print('账号或密码输入错误')
        pass

if __name__ == '__main__':
    context = ssl._create_unverified_context()
    login("START",context)
    time.sleep( 15 )
    login("END",context)

win10任务计划设置:

选择创建基本任务

随便取个名字后下一步

下一步

日期你今天签过了就选明天的吧,时间自己设置好,我这时早晨10点(确定这个时间电脑时开着的)

在浏览里找到你pythonw.exe(这是无窗口的Python可执行程序,跟python.exe在同一目录下的)的绝对路径

#找不到的就打开cmd 输入:where python就可以看到啦

接着把前缀剪切到起始于那(别问问就是好看)

当然你也可以不理

最后添加参数就是我们刚写好的python脚本的绝对路径啦(别问为什么我的不是,问就是演示懒得写)

!!!这些都需要填写绝对路径的,填错脚本就执行不了了

最后完成就ok啦

可以在任务计划程序库里查看状态

-----------------------------------------------------------------我是分割线--------------------------------------------------------------

跟着配置完最好在第二天(任务计划设置的时间后)检查下是否正常签到成功噢!!!

有不懂或者有问题的地方欢迎在下面评论,收到信息会及时更新回复的(...大概)

发布了2 篇原创文章 · 获赞 2 · 访问量 2501

猜你喜欢

转载自blog.csdn.net/qq_42016346/article/details/103994336