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

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

[复制链接]

4

主题

15

帖子

37

积分

新手上路

Rank: 1

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

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

216

主题

1775

帖子

2322

积分

管理员

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

Rank: 9Rank: 9Rank: 9

积分
2322
发表于 2022-1-3 16:09:01 | 显示全部楼层
既然是用python写了,直接抓出来包分析一下加密,python进行post不就可以了
混的人。
回复

使用道具 举报

19

主题

379

帖子

2552

积分

开发者

精通各种语言的HelloWord!

Rank: 6Rank: 6

积分
2552

猫咪币纪念章活跃会员三好学生热心会员中秋纪念章国庆纪念章

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

使用道具 举报

19

主题

379

帖子

2552

积分

开发者

精通各种语言的HelloWord!

Rank: 6Rank: 6

积分
2552

猫咪币纪念章活跃会员三好学生热心会员中秋纪念章国庆纪念章

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

使用道具 举报

4

主题

15

帖子

37

积分

新手上路

Rank: 1

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

使用道具 举报

138

主题

461

帖子

893

积分

版主

Rank: 7Rank: 7Rank: 7

积分
893

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

发表于 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
如果有微信小程序,我觉得可以直接反编译来看看他这部分的代码,当然是要没有加密,加密可能就有难度了 ...

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

使用道具 举报

19

主题

379

帖子

2552

积分

开发者

精通各种语言的HelloWord!

Rank: 6Rank: 6

积分
2552

猫咪币纪念章活跃会员三好学生热心会员中秋纪念章国庆纪念章

发表于 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("任意键退出")
回复

使用道具 举报

19

主题

379

帖子

2552

积分

开发者

精通各种语言的HelloWord!

Rank: 6Rank: 6

积分
2552

猫咪币纪念章活跃会员三好学生热心会员中秋纪念章国庆纪念章

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

使用道具 举报

19

主题

379

帖子

2552

积分

开发者

精通各种语言的HelloWord!

Rank: 6Rank: 6

积分
2552

猫咪币纪念章活跃会员三好学生热心会员中秋纪念章国庆纪念章

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

使用道具 举报

发表回复

本版积分规则

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