关于写答题脚本的一些问题
本帖最后由 洪水 于 2022-1-3 14:52 编辑想写一个简道云里面自动答题的脚本,我目前是打算用python写的,但是因为是新手所以有好多问题,想要请教一下哥哥们。
比如说这里的自拍照被设置了只能拍照上传,没有办法上传图片,想知道有没有破解的办法
既然是用python写了,直接抓出来包分析一下加密,python进行post不就可以了 抓包看图片上传接口,解密,再用python实现本地图片上传 如果有微信小程序,我觉得可以直接反编译来看看他这部分的代码,当然是要没有加密,加密可能就有难度了 谢谢哥哥们 协议 Ne-21 发表于 2022-1-3 16:31
如果有微信小程序,我觉得可以直接反编译来看看他这部分的代码,当然是要没有加密,加密可能就有难度了 ...
之前在学校里用过你写的国安秒过小助手,感觉跟我要写的这个是一个类型的,可以看看你的那个源码吗?想要参考参考 本帖最后由 Ne-21 于 2022-1-6 10:05 编辑
```py
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("任意键退出")
```
我这个直接发数据包,你这个恐怕不行吧 还是要抓包来看他提交的数据
页:
[1]
2