上一主题 下一主题
ScriptCat,新一代的脚本管理器脚本站,与全世界分享你的用户脚本油猴脚本开发指南教程目录
12下一页
返回列表 发新帖

关于写答题脚本的一些问题

[复制链接]

该用户从未签到

4

主题

15

帖子

37

积分

助理工程师

Rank: 1

积分
37
发表于 2022-1-3 14:44:35 | 显示全部楼层 | 阅读模式
本帖最后由 洪水 于 2022-1-3 14:52 编辑

想写一个简道云里面自动答题的脚本,我目前是打算用python写的,但是因为是新手所以有好多问题,想要请教一下哥哥们。
下载.png
比如说这里的自拍照被设置了只能拍照上传,没有办法上传图片,想知道有没有破解的办法

  • TA的每日心情
    开心
    前天 00:00
  • 签到天数: 49 天

    [LV.5]常住居民I

    350

    主题

    3064

    帖子

    3077

    积分

    荣誉开发者

    非物质文化遗产社会摇传承人

    Rank: 10Rank: 10Rank: 10

    积分
    3077

    猫咪币纪念章国庆纪念章中秋纪念章荣誉开发者家财万贯

    发表于 2022-1-3 16:09:01 | 显示全部楼层
    既然是用python写了,直接抓出来包分析一下加密,python进行post不就可以了
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

  • TA的每日心情
    开心
    昨天 08:27
  • 签到天数: 159 天

    [LV.7]常住居民III

    25

    主题

    640

    帖子

    6233

    积分

    荣誉开发者

    精通各种语言的HelloWord!

    Rank: 10Rank: 10Rank: 10

    积分
    6233

    猫咪币纪念章活跃会员三好学生热心会员中秋纪念章国庆纪念章荣誉开发者家财万贯

    发表于 2022-1-3 16:28:39 | 显示全部楼层
    抓包看图片上传接口,解密,再用python实现本地图片上传
    回复

    使用道具 举报

  • TA的每日心情
    开心
    昨天 08:27
  • 签到天数: 159 天

    [LV.7]常住居民III

    25

    主题

    640

    帖子

    6233

    积分

    荣誉开发者

    精通各种语言的HelloWord!

    Rank: 10Rank: 10Rank: 10

    积分
    6233

    猫咪币纪念章活跃会员三好学生热心会员中秋纪念章国庆纪念章荣誉开发者家财万贯

    发表于 2022-1-3 16:31:42 | 显示全部楼层
    如果有微信小程序,我觉得可以直接反编译来看看他这部分的代码,当然是要没有加密,加密可能就有难度了
    回复

    使用道具 举报

    该用户从未签到

    4

    主题

    15

    帖子

    37

    积分

    助理工程师

    Rank: 1

    积分
    37
    发表于 2022-1-3 21:36:34 来自手机  | 显示全部楼层
    谢谢哥哥们
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2022-8-1 10:48
  • 签到天数: 94 天

    [LV.6]常住居民II

    142

    主题

    521

    帖子

    842

    积分

    版主

    Rank: 8Rank: 8

    积分
    842

    猫咪币纪念章三好学生活跃会员热心会员突出贡献中秋纪念章国庆纪念章宣传达人推广达人

    发表于 2022-1-3 22:39:19 | 显示全部楼层
    协议                    
    bilibili:陈公子的话   公众号:陈公子的话
    回复

    使用道具 举报

    该用户从未签到

    4

    主题

    15

    帖子

    37

    积分

    助理工程师

    Rank: 1

    积分
    37
    发表于 2022-1-5 22:15:07 | 显示全部楼层
    Ne-21 发表于 2022-1-3 16:31
    如果有微信小程序,我觉得可以直接反编译来看看他这部分的代码,当然是要没有加密,加密可能就有难度了 ...

    之前在学校里用过你写的国安秒过小助手,感觉跟我要写的这个是一个类型的,可以看看你的那个源码吗?想要参考参考
    回复

    使用道具 举报

  • TA的每日心情
    开心
    昨天 08:27
  • 签到天数: 159 天

    [LV.7]常住居民III

    25

    主题

    640

    帖子

    6233

    积分

    荣誉开发者

    精通各种语言的HelloWord!

    Rank: 10Rank: 10Rank: 10

    积分
    6233

    猫咪币纪念章活跃会员三好学生热心会员中秋纪念章国庆纪念章荣誉开发者家财万贯

    发表于 2022-1-6 10:04:26 | 显示全部楼层

    本帖最后由 Ne-21 于 2022-1-6 10:05 编辑

    import requests
    import random
    import json
    
    userInfo = {}
    schoolList = []
    answer = [
        {'number': 66, 'answer': 'C'},
        {'number': 329, 'answer': 'D'},
        {'number': 466, 'answer': 'D'},
        {'number': 171, 'answer': 'A'},
        {'number': 414, 'answer': 'A'},
        {'number': 242, 'answer': 'C'},
        {'number': 422, 'answer': 'B'},
        {'number': 529, 'answer': 'ABCD'},
        {'number': 599, 'answer': 'ABC'},
        {'number': 654, 'answer': 'ABCD'},
        {'number': 694, 'answer': 'ABCD'},
        {'number': 548, 'answer': 'CD'},
        {'number': 553, 'answer': 'ABD'},
        {'number': 1020, 'answer': 'B'},
        {'number': 1046, 'answer': 'A'},
        {'number': 880, 'answer': 'B'},
        {'number': 1079, 'answer': 'B'},
        {'number': 920, 'answer': 'A'},
        {'number': 830, 'answer': 'B'},
        {'number': 1049, 'answer': 'A'}
    ]
    s = requests.Session()
    headers = {
        'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,'
                  'application/signed-exchange;v=b3;q=0.9',
        'Accept-Encoding': 'gzip, deflate',
        'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',
        'Connection': 'keep-alive',
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) '
                      'Chrome/96.0.4664.55 Safari/537.36 Edg/96.0.1054.34 '
    }
    
    def getSchoolList():
        global schoolList
        url = "https://haedu-2021.oss-cn-beijing.aliyuncs.com/gjaqzsjs/competition/unit.json"
        res = s.get(url, headers=headers)
        schoolList = res.json()
    
    def getSchoolId(school):
        if school == "":
            return -1
        for i in schoolList:
            if i.get('char') == school:
                return i.get('code')
            else:
                pass
        return -1
    
    def login(unit_code: int, student_id: str, password: str):
        global userInfo
        login_url = "http://gjaqzsjs.haedu.cn/Login/auth"
        data = {
            'unit_code': unit_code,
            'student_id': student_id,  # 12345678,
            'password': password,  # 12345678
        }
        res = s.post(login_url, data=data, headers=headers)
        res = res.json()
        if res.get('msg') != 'SUCCESS':
            print(res.mag)
            return False
        else:
            userInfo = res.get('data')
            print('登录状态:', res.get('msg'))
            print(userInfo)
            return True
    
    def getExamData():
        global exam_paper_data
        exam_url = 'http://gjaqzsjs.haedu.cn/Answer/getQuestionLists'
        res = s.post(exam_url, headers=headers)
        res = res.json()
        if res.get('code') == 2000:
            print('获取试卷成功')
            exam_paper_data = res.get('data')
            submit()
        else:
            print('获取试卷失败')
            print(res)
    
    def submit():
        global answer
        sub_url = 'http://gjaqzsjs.haedu.cn/Answer/submitAnswer'
        data = {
            'answer': json.dumps(answer),
            'use_time': random.randint(500, 550)
        }
        res = s.post(sub_url, data=data, headers=headers)
        print(res.json())
        print("答案提交成功,请登录网页查看成绩!")
    
    if __name__ == '__main__':
        getSchoolList()
        print("""
        -------------欢迎使用安全知识竞赛助手,请使用账号密码登录。
                ---- 油猴中文网:https://bbs.tampermonkey.net.cn/?fromuser=Ne-21
                ---- 作者: Ne-21
                ---- 交流群:171221220
        ------------- 学习交流使用,请勿用于商业用途。
        """)
        while 1:
            school = input('请输入学校名:')
            unit_code = getSchoolId(school)
            if unit_code == -1:
                print("学校不存在,请重新输入!")
                continue
            else:
                break
        student_id = input("请输入登录账号:")
        password = input("请输入登录密码:")
        login(unit_code, student_id, password)
        getExamData()
        input("任意键退出")
    
    回复

    使用道具 举报

  • TA的每日心情
    开心
    昨天 08:27
  • 签到天数: 159 天

    [LV.7]常住居民III

    25

    主题

    640

    帖子

    6233

    积分

    荣誉开发者

    精通各种语言的HelloWord!

    Rank: 10Rank: 10Rank: 10

    积分
    6233

    猫咪币纪念章活跃会员三好学生热心会员中秋纪念章国庆纪念章荣誉开发者家财万贯

    发表于 2022-1-6 10:06:23 | 显示全部楼层
    我这个直接发数据包,你这个恐怕不行吧
    回复

    使用道具 举报

  • TA的每日心情
    开心
    昨天 08:27
  • 签到天数: 159 天

    [LV.7]常住居民III

    25

    主题

    640

    帖子

    6233

    积分

    荣誉开发者

    精通各种语言的HelloWord!

    Rank: 10Rank: 10Rank: 10

    积分
    6233

    猫咪币纪念章活跃会员三好学生热心会员中秋纪念章国庆纪念章荣誉开发者家财万贯

    发表于 2022-1-6 10:07:14 | 显示全部楼层
    还是要抓包来看他提交的数据
    回复

    使用道具 举报

    发表回复

    本版积分规则

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