首页
畅所欲言
友情链接
壁纸大全
数据统计
推荐
工具箱
在线白板
Search
1
职教云小助手重构更新,职教云助手最新版下载地址【已和谐】
14,215 阅读
2
职教云-智慧职教,网课观看分析(秒刷网课)
11,453 阅读
3
gradle-5.4.1-all.zip下载
9,490 阅读
4
职教云-智慧职教,签到补签分析(逆天改命系列)
8,196 阅读
5
一个优秀的程序员从写文档开始:免费领14个月语雀云笔记会员
7,015 阅读
学习笔记
Web
Python
转载文章
算法刷题
JS逆向
综合笔记
安卓
物联网
Java
C
资源收集
软件收藏
网络资源
影视专辑
TED英语角
随便写写
随手拍
登录
/
注册
Search
Lan
累计撰写
617
篇文章
累计收到
629
条评论
首页
栏目
学习笔记
Web
Python
转载文章
算法刷题
JS逆向
综合笔记
安卓
物联网
Java
C
资源收集
软件收藏
网络资源
影视专辑
TED英语角
随便写写
随手拍
页面
畅所欲言
友情链接
壁纸大全
数据统计
推荐
工具箱
在线白板
搜索到
143
篇与
的结果
2020-05-03
看了这些,你觉得你的隐私还安全吗?用python来保护你的隐私
不得不说,我感觉自己越来越有营销号的潜力了。前段时间在telegram上看到一个社工机器人,大概是这样的(查询了下自己QQ):虽然说查出来的信息比较老旧了,但至少还是有参考价值的,你以为这样就完了吗?你以为这样就没了么。。就国内来说,现在什么东西都需要实名认证,动不动就上传身份证照片,上传手持身份证,不上传还不给你用,但是有能力约束我们这些用户,能够约束到那些法外狂徒吗???网络无绝对,信息上传了,服务商那边有把握保存好你的信息吗,信息泄露事件屡出不穷,于是就有了网上这些信息交易,信息多了也就成了社工库了。以下问答来源于找法网:国家对于非法获取和贩卖公民个人信息的具体刑法是什么呢?最高人民法院、最高人民检察院 关于办理侵犯公民个人信息刑事案件适用法律若干问题的解释 为依法惩治侵犯公民个人信息犯罪活动,保护公民个人信息安全和合法权益,根据《中华人民共和国刑法》《中华人民共和国刑事诉讼法》的有关规定,现就办理此类刑事案件适用法律的若干问题解释如下: 第一条 刑法第二百五十三条之一规定的“公民个人信息”,是指以电子或者其他方式记录的能够单独或者与其他信息结合识别特定自然人身份或者反映特定自然人活动情况的各种信息,包括姓名、身份证件号码、通信通讯联系方式、住址、账号密码、财产状况、行踪轨迹等。 第二条 违反法律、行政法规、部门规章有关公民个人信息保护的规定的,应当认定为刑法第二百五十三条之一规定的“违反国家有关规定”。 第三条 向特定人提供公民个人信息,以及通过信息网络或者其他途径发布公民个人信息的,应当认定为刑法第二百五十三条之一规定的“提供公民个人信息”。 未经被收集者同意,将合法收集的公民个人信息向他人提供的,属于刑法第二百五十三条之一规定的“提供公民个人信息”,但是经过处理无法识别特定个人且不能复原的除外。 第四条 违反国家有关规定,通过购买、收受、交换等方式获取公民个人信息,或者在履行职责、提供服务过程中收集公民个人信息的,属于刑法第二百五十三条之一第三款规定的“以其他方法非法获取公民个人信息”。 第五条 非法获取、出售或者提供公民个人信息,具有下列情形之一的,应当认定为刑法第二百五十三条之一规定的“情节严重”: (一)出售或者提供行踪轨迹信息,被他人用于犯罪的; (二)知道或者应当知道他人利用公民个人信息实施犯罪,向其出售或者提供的; (三)非法获取、出售或者提供行踪轨迹信息、通信内容、征信信息、财产信息五十条以上的; (四)非法获取、出售或者提供住宿信息、通信记录、健康生理信息、交易信息等其他可能影响人身、财产安全的公民个人信息五百条以上的; (五)非法获取、出售或者提供第三项、第四项规定以外的公民个人信息五千条以上的; (六)数量未达到第三项至第五项规定标准,但是按相应比例合计达到有关数量标准的; (七)违法所得五千元以上的; (八)将在履行职责或者提供服务过程中获得的公民个人信息出售或者提供给他人,数量或者数额达到第三项至第七项规定标准一半以上的; (九)曾因侵犯公民个人信息受过刑事处罚或者二年内受过行政处罚,又非法获取、出售或者提供公民个人信息的; (十)其他情节严重的情形。 实施前款规定的行为,具有下列情形之一的,应当认定为刑法第二百五十三条之一第一款规定的“情节特别严重”: (一)造成被害人死亡、重伤、精神失常或者被绑架等严重后果的; (二)造成重大经济损失或者恶劣社会影响的; (三)数量或者数额达到前款第三项至第八项规定标准十倍以上的; (四)其他情节特别严重的情形。 第六条 为合法经营活动而非法购买、收受本解释第五条第一款第三项、第四项规定以外的公民个人信息,具有下列情形之一的,应当认定为刑法第二百五十三条之一规定的“情节严重”: (一)利用非法购买、收受的公民个人信息获利五万元以上的; (二)曾因侵犯公民个人信息受过刑事处罚或者二年内受过行政处罚,又非法购买、收受公民个人信息的; (三)其他情节严重的情形。 实施前款规定的行为,将购买、收受的公民个人信息非法出售或者提供的,定罪量刑标准适用本解释第五条的规定。 第七条 单位犯刑法第二百五十三条之一规定之罪的,依照本解释规定的相应自然人犯罪的定罪量刑标准,对直接负责的主管人员和其他直接责任人员定罪处罚,并对单位判处罚金。 第八条 设立用于实施非法获取、出售或者提供公民个人信息违法犯罪活动的网站、通讯群组,情节严重的,应当依照刑法第二百八十七条之一的规定,以非法利用信息网络罪定罪处罚;同时构成侵犯公民个人信息罪的,依照侵犯公民个人信息罪定罪处罚。 第九条 网络服务提供者拒不履行法律、行政法规规定的信息网络安全管理义务,经监管部门责令采取改正措施而拒不改正,致使用户的公民个人信息泄露,造成严重后果的,应当依照刑法第二百八十六条之一的规定,以拒不履行信息网络安全管理义务罪定罪处罚。 第十条 实施侵犯公民个人信息犯罪,不属于“情节特别严重”,行为人系初犯,全部退赃,并确有悔罪表现的,可以认定为情节轻微,不起诉或者免予刑事处罚;确有必要判处刑罚的,应当从宽处罚。 第十一条 非法获取公民个人信息后又出售或者提供的,公民个人信息的条数不重复计算。 向不同单位或者个人分别出售、提供同一公民个人信息的,公民个人信息的条数累计计算。 对批量公民个人信息的条数,根据查获的数量直接认定,但是有证据证明信息不真实或者重复的除外。 第十二条 对于侵犯公民个人信息犯罪,应当综合考虑犯罪的危害程度、犯罪的违法所得数额以及被告人的前科情况、认罪悔罪态度等,依法判处罚金。罚金数额一般在违法所得的一倍以上五倍以下。 第十三条 本解释自2017年6月1日起施行。但是你有见过有关新闻关于泄露公民隐私信息被抓之类的吗(盘神除外)说了这么多,对于隐私泄露我们既然无法拒绝,那就学会享受吧,开个玩笑,应该是,既然服务商不能保证信息的安全,但是我们可以自己从根源出发,这里就目前经常要上传的身份证照片以及手持照片来说。学会打水印,这次上传需要用来干什么,直接满照片水印,当然前提是你不影响身份证上信息的清晰,现在这样的水印软件还是不少的,但是既然学了python何不自己写一个呢。说了这么久,总数进入正题了。给照片加水印,用代码实现, 是不是很厉害的样子。下面是python加水印的代码from PIL import Image, ImageFont, ImageDraw text = 'www.lanol.cn' text = input('请输入水印内容:') # 水印内容 image = Image.open('picture.jpg') # 打开要处理的图片 font = ImageFont.truetype('msyh.ttc', size=40) # 水印文字的字体及字体大小 new_img = Image.new('RGBA', (image.size[0] * 3, image.size[1] * 3), (0, 0, 0, 0)) # 将原图转为RGBA模式的图且放到新图 new_img.paste(image, image.size) font_len = len(text) rgba = new_img.convert('RGBA') shuiying = Image.new('RGBA', rgba.size, (255, 255, 255, 0)) # 造一个图片,用来装文字水印 image_draw = ImageDraw.Draw(shuiying) for i in range(0, rgba.size[0], font_len * 20 + 100): for j in range(0, rgba.size[1], 200): # 水印字体疏密 image_draw.text((i, j), text, font=font, fill=(255, 50, 50, 50)) # 生成半透明水印文字图片 fill可以调整水印字体颜色 text_overlay = shuiying.rotate(45) # 水印图片旋转45° result = Image.alpha_composite(rgba, text_overlay) # 将两张图片重叠 result = result.crop((image.size[0], image.size[1], image.size[0] * 2, image.size[1] * 2)).save( 'result.png') # 将结果图片裁剪,并保存为result.png使用说明:请将要处理的图片放在软件同一目录,且命名问picture.jpg,生成结果将是result.png原图:效果图:
2020年05月03日
1,188 阅读
0 评论
0 点赞
2020-04-28
职教云-智慧职教,签到补签分析(逆天改命系列)
最一开始,我只试着弄了个职教云签到监控。帮我签到,但是后来居然在一些地方看到各种逆天操作,然后发现全部都是教师权限才能的操作,然后我就对职教云补签进行了抓包分析(别问我教师账号怎么来的,注册即可)。在用教师账户进行补签操作之后抓到这么一个包,怎么抓包的就说了,这个也不是重点,主要看思路。这个包是我在职教云手机端抓到的,因为手机版比网页版更老实。先来看下他的参数:传递了一些cookiedata,equipmentAppVersion,equipmentModel,equipmentApiVersion经过目测翻译,加分析值:equipmentAppVersion:这玩意就是app版本号equipmentModel:这个是我手机型号equipmentApiVersion:这个大概估计就是api版本了吧。然后就是那个最关键的data了,一般来说要传递的值都在data里面吧。把它复制出来并且url解码之后是一串这样的为了看得更清楚,给他挪个地方看看咳咳,继续盲猜之旅。目前的值有这些:OpenClassId:这个似乎目测翻译一下就是,开放班级的IDId:这玩意就一个ID,是啥ID咱也不知道呀,放着看看SignId:目测翻译一下,标志ID,估计就是代表这条活动的ID吧StuId:目测翻译就是学生IDSignResultType:标志结果类型,咳咳人工机翻,估计意思就是签到的目标状态SourceType:来源类型?大概这样吧schoolId:目测翻译就是学校ID经过上面这一长短的目测翻译大概需要的一些值就是这样了。现在先试着发一个包看下结果是修改成功,说明可以自己伪造包然后修改签到状态但问题是,我们没有老师的账号就没有老师cookie呀,那怎么可以实现那些逆天操作呢,我试着把传递的cookie删除,然后看下结果然后发现居然也修改成功了,既然cookie都不要了,那我干脆把手机型号,版本型号这些也删除试试,然后只保留一个data,结果。。。。除了说职教云老实我还能说什么。到此我们就可以完成补签操作了。对于上面那几个参数不再次分析了,懒,直接上代码完整代码在GitHub:https://github.com/vastsa/ZhiJiaoYunQianDaofrom configparser import ConfigParser import requests config = ConfigParser() config.read('config.info') try: stuid = config['information']['userid'] except: import get_cookie def get_kecheng(time): data = { 'stuId': stuid, 'faceDate': time } url = 'https://zjyapp.icve.com.cn/newmobileapi/faceteach/getStuFaceTeachList' html = requests.post(url=url, data=data).json() datalist = html['dataList'] courses = len(datalist) courseId = [] courseNmae = [] classSection = [] openClassId = [] for i in range(courses): courseNmae.append(datalist[i]['courseName']) courseId.append(datalist[i]['Id']) classSection.append(datalist[i]['classSection']) openClassId.append(datalist[i]['openClassId']) if courses != 0: print(f'课表如下:') js = 0 for i in range(courses): print(f'【{js}】第{classSection[i]}课:{courseNmae[i]}') js += 1 js = input("请输入你要补签的课堂:") return { 'courseId': courseId[int(js)], 'openClassId': openClassId[int(js)], 'courses': courses } else: print("同学,你今天无课,好好休息!") def buqian(course): url = 'https://zjyapp.icve.com.cn/newmobileapi/faceteach/newGetStuFaceActivityList' data = { 'activityId': course['courseId'], 'stuId': stuid, 'classState': '2', 'openClassId': course['openClassId'] } html = requests.post(url=url, data=data).json()['dataList'] buqianname = [] buqianid = [] for j in range(len(html)): datatype = html[j]['DataType'] if datatype == "签到": buqianname.append(html[j]['Title']) buqianid.append(html[j]['Id']) for i in range(len(buqianid)): print(f'【{i}】{buqianname[i]}') # print(f'【{i}】{buqianid[i]}') target = int(input("请输入要逆天改命的序号:")) datas = f'{{"OpenClassId":"{course["openClassId"]}","Id":"{stuid}","SignId":"{buqianid[target]}","StuId":"{stuid}","SignResultType":1,"SourceType":2,"schoolId":"3-3sabgooohfboflpnx6bq"}}' xdata = { 'data': f'{datas}' } headers = { 'Content-Type': 'application/x-www-form-urlencoded', 'Host': 'zjyapp.icve.com.cn', 'Connection': 'Keep-Alive', 'Accept-Encoding': 'gzip', 'User-Agent': 'okhttp/3.10.0', } bqurl = 'https://zjyapp.icve.com.cn/newmobileapi/faceteach/changeSignType' html = requests.post(url=bqurl, headers=headers, data=xdata).json() if html['code'] == 1: print(html['msg']) print("逆天改命成功,返回菜单") menu() else: print(html['msg']) print("逆天改命失败,请联系Lan") def menu(): print("【欢迎使用职教云补签助手】") print(" By:Lan") date = input("请输入需要补签的日期如(2020-4-17):") course = get_kecheng(date) buqian(course) if __name__ == '__main__': menu()
2020年04月28日
8,196 阅读
9 评论
1 点赞
2020-04-27
职教云-智慧职教,网课观看分析(秒刷网课)
先来张效果图:当打开课件之后,发现右侧或不断发送一个包StuProcessCellLog的包,初步估计这就是不断向服务器发送我们目前的观看情况的包点开之后翻到最下面,可以看到Form Data,经过自己之前补签的分析,可以猜到下面对应的值的信息,以及刷网课的思路CourseOpenID:这个课程ID可以直接在网址栏查看OpenClassID:这个课程班级ID一样的可以直接在网址栏看上面这两个值在同一个课程都是不变的CellID:这个就是下一步分析怎么来的了token:后来发现这个和Cookie里面的token是一样的,所以也可以不变下面是分析CellID的获取过程:1,首先是获取整个课件的大列表,也就是下图这一块打开之后按F12,打开工具,然后刷新网页可以看到,多了三个东西出来getProcessList,getStuStudyClassList,getTopicByModuleId一个个来看吧,从第一个开始getProcessList:他提交了两条数据,一个是课程id一个是课程班级id返回来一个list,全部展开之后就是我们的课件列表了返回来第一级目录,和他的ID然后是第二个getStuStudyClassList:这个是获取你账户下有哪些课程,在这里可以不用管第三个是getTopicByModuleId可以看到这个是二级目录的id,然后uptopicid这个应该是上传者的id(网易翻译猜的,在这里没啥用,不过修改作业时间那里需要这个id)到这里,目前的三个包已经分析完了,但是还是没有得到刷进度要的CellID,这三个包只翻出来二级目录,还差最后课件的ID就行了,那是因为我们还没有展开课件,所以没有加载,然后我们现在来点开二级目录查看一下查看一下Form Data:一个三个值,第一个courseOpenID:说过了的,第二个OpenClassID:说过的,第三个topicid:现在说topicid:fzpq初步估计就是就是之前传递过的值,经对比可以发现这个id等于我们获取到的二级目录ID。到这里就已经得到了最开始我们所需要的CellID了回过神看这个文件列表发现,职教云好实诚呀。。第一个getProcessList:获取列表第二个getStuStudyClassList:获取学生学习班级列表第三个TopicidByMouduleid:通过Moduleid获取Topicid第四个getCellByTopicId:通过Topicid获取CellID总上就可以快乐的为所欲为了最后附上批量获取课程CellID的python代码import random import time import requests def get_all(): url = 'https://zjyapp.icve.com.cn/newmobileapi/assistTeacher/getModuleListByClassId' data = { 'courseOpenId': 'courseOpenId', 'openClassId': 'courseOpenId', 'stuId': 'stuId', } html = requests.post(url=url, data=data).json() data = html['moduleList'] moduleIds = [] for i in data: print(i['moduleName'] + '已加载') moduleIds.append(i['moduleId']) return moduleIds def get_list(moduleId): url = 'https://zjy2.icve.com.cn/newmobileapi/assistTeacher/getTopicListByModuleId' moduleIds = [] for i in moduleId: data = { 'openClassId': 'openClassId', 'courseOpenId': 'courseOpenId', 'moduleId': f'{i}' } html = requests.post(url=url, data=data).json() data = html['topicList'] for j in data: moduleIds.append(j['topicId']) return moduleIds def get_cell(topicIds): url = 'https://zjy2.icve.com.cn/newmobileapi/assistTeacher/getCellListByTopicId' cellids = [] for k in topicIds: data = { 'openClassId': 'openClassId', 'courseOpenId': 'courseOpenId', 'topicId': k, 'stuId': 'stuId' } html = requests.post(url=url, data=data).json() data = html['cellList'] for i in data: if i['categoryName'] == '子节点': for j in i['cellChildNodeList']: cellids.append(j['cellId']) else: cellids.append(i['cellId']) return cellids
2020年04月27日
11,453 阅读
14 评论
3 点赞
2020-04-26
TCP与UDP
TCP类似于打电话,使用该种方式进行网络通信时,需要建立专门的虚拟连接,然后进行可靠的数据传输,如果数据发送失败,则客户端会自动重发该数据。UDP类似于发送短信,使用该种方式进行通讯时,不需要建立专门的虚拟连接,传输不可靠,如果发送失败,则客户端无法获得重要的数据一般使用TCP方式进行数据传输,不重要则UDP用UDP发送数据,网络调试工具可以成功收到,但是使用网络调试工具发送数据,python那边毫无反应,当换成TCP协议后双发就可以进行通信了
2020年04月26日
1,087 阅读
0 评论
0 点赞
2020-04-26
学习网络编程的第一天:python网络编程之用TCP制作聊天工具
学习网络编程的第一天,看着视频教程跟着做了一天聊天小工具效果图展示:客户端:服务器端:客户端python代码:from socket import * # 创建客户端套接字对象 client_socket = socket(AF_INET, SOCK_STREAM) # 调用connect方法与服务器建立连接 client_socket.connect(('192.168.31.175', 8989)) while True: # 客户端发送信息 msg = input('>') client_socket.send(msg.encode('utf-8')) # 客户端接收信息 recv_data = client_socket.recv(1024) print('对方说:', recv_data.decode('utf-8'))服务器端python代码:from socket import * # 创建服务器端套接字对象 server_socket = socket(AF_INET, SOCK_STREAM) # 绑定端口 server_socket.bind(('', 8989)) # 监听 server_socket.listen() # 等待客户端连接 client_socket, client_info = server_socket.accept() while True: # 接受客户端信息 recv_data = client_socket.recv(1024) print('对方说:', recv_data.decode('utf-8')) # 发送信息 msg = input() client_socket.send(msg.encode('utf-8'))
2020年04月26日
986 阅读
0 评论
0 点赞
2020-04-26
Pycharm链接数据库出现 Server returns invalid timezone. Go to "Advanced" tab and set "serverTimezone" prope
在最终url 上 追加 ?serverTimezone=GMT
2020年04月26日
2,488 阅读
0 评论
0 点赞
2020-04-25
python爬虫request如何提交request payload形式发送post请求
今天想用python自动获取表单的信息,但是提交请求是request payload的形式和以往的data似乎有点不一样,用以往的方式提交发现错误了。最终解决方式如下:用json的dumps加载dataheaders = { 'content-type': 'application/json; charset=UTF-8', 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.122 Safari/537.36', } html = requests.post(url=url, headers=headers, data=json.dumps(data)).text--------------------------------------------------------------2020/5/19这两天又找到一个类似的也是payload的形式传递。然后发现直接当成字符串传递过去就好了
2020年04月25日
1,944 阅读
0 评论
0 点赞
1
...
16
17
18
...
21