首页
畅所欲言
友情链接
壁纸大全
数据统计
推荐
工具箱
在线白板
Search
1
职教云小助手重构更新,职教云助手最新版下载地址【已和谐】
13,030 阅读
2
职教云-智慧职教,网课观看分析(秒刷网课)
10,666 阅读
3
gradle-5.4.1-all.zip下载
8,692 阅读
4
职教云-智慧职教,签到补签分析(逆天改命系列)
7,560 阅读
5
一个优秀的程序员从写文档开始:免费领14个月语雀云笔记会员
6,793 阅读
学习笔记
Web
Python
转载文章
算法刷题
JS逆向
综合笔记
安卓
物联网
Java
C
资源收集
软件收藏
网络资源
影视专辑
TED英语角
随便写写
随手拍
登录
/
注册
Search
Lan
累计撰写
620
篇文章
累计收到
603
条评论
首页
栏目
学习笔记
Web
Python
转载文章
算法刷题
JS逆向
综合笔记
安卓
物联网
Java
C
资源收集
软件收藏
网络资源
影视专辑
TED英语角
随便写写
随手拍
页面
畅所欲言
友情链接
壁纸大全
数据统计
推荐
工具箱
在线白板
搜索到
446
篇与
的结果
2020-05-11
一款好看,有科技感的动态背景线条动态效果代码
背景动态js代码,效果图可见本站代码源于网络,如有问题请联系Vast@tom.comjs文件代码!function () { function n(n, e, t) { return n.getAttribute(e) || t } function e(n) { return document.getElementsByTagName(n) } function t() { var t = e("script"), o = t.length, i = t[o - 1]; return {l: o, z: n(i, "zIndex", -1), o: n(i, "opacity", .5), c: n(i, "color", "0,0,0"), n: n(i, "count", 99)} } function o() { a = m.width = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth, c = m.height = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight } function i() { r.clearRect(0, 0, a, c); var n, e, t, o, m, l; s.forEach(function (i, x) { for (i.x += i.xa, i.y += i.ya, i.xa *= i.x > a || i.x < 0 ? -1 : 1, i.ya *= i.y > c || i.y < 0 ? -1 : 1, r.fillRect(i.x - .5, i.y - .5, 1, 1), e = x + 1; e < u.length; e++) n = u[e], null !== n.x && null !== n.y && (o = i.x - n.x, m = i.y - n.y, l = o * o + m * m, l < n.max && (n === y && l >= n.max / 2 && (i.x -= .03 * o, i.y -= .03 * m), t = (n.max - l) / n.max, r.beginPath(), r.lineWidth = t / 2, r.strokeStyle = "rgba(" + d.c + "," + (t + .2) + ")", r.moveTo(i.x, i.y), r.lineTo(n.x, n.y), r.stroke())) }), x(i) } var a, c, u, m = document.createElement("canvas"), d = t(), l = "c_n" + d.l, r = m.getContext("2d"), x = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function (n) { window.setTimeout(n, 1e3 / 45) }, w = Math.random, y = {x: null, y: null, max: 2e4}; m.id = l, m.style.cssText = "position:fixed;top:0;left:0;z-index:" + d.z + ";opacity:" + d.o, e("body")[0].appendChild(m), o(), window.onresize = o, window.onmousemove = function (n) { n = n || window.event, y.x = n.clientX, y.y = n.clientY }, window.onmouseout = function () { y.x = null, y.y = null }; for (var s = [], f = 0; d.n > f; f++) { var h = w() * a, g = w() * c, v = 2 * w() - 1, p = 2 * w() - 1; s.push({x: h, y: g, xa: v, ya: p, max: 6e3}) } u = s.concat([y]), setTimeout(function () { i() }, 100) }();引用代码:<script type="text/javascript" color="0,174,255" opacity='0.7' zIndex="-2" count="200" src="https://download.ccspump.com/js/bjtx.js"></script>
2020年05月11日
3,000 阅读
1 评论
3 点赞
2020-05-09
4k超清壁纸APP抓包获取所有壁纸下载地址
额,最近发现手机壁纸似乎有段时间没换了,刚好又看到网上有一个APP叫做4k超清壁纸似乎很厉害的样子,然后我就抓包,发现这家APP的心真大。先来一张效果图打开Burp,打开软件,设置好burp和模拟器然后清空现有的记录,app内刷新一下多了4条然后就找到接口了。。。感觉现在的一些APP用的http协议就跟玩一样,直接get就能获取所有信息了。。。https://api.wallpaperscraft.com/images?screen[width]=1080&screen[height]=1920&sort=date&lang=en&limit=60&offset=0然后就是python代码:import os import threading import requests def get_url(): url = 'https://api.wallpaperscraft.com/images?screen[width]=1080&screen[height]=1920&sort=rating&lang=en&limit=1000000&offset=0' headers = { 'User-Agent': 'okhttp/3.8.0', } data = requests.get(url, headers).json() data = data['items'] originals = [] adapteds = [] adapted_landscapes = [] for i in data: variation = i['variations'] originals.append(variation['original']['url']) adapteds.append(variation['adapted']['url']) adapted_landscapes.append(variation['adapted_landscape']['url']) print('链接已整合完毕') return originals, adapteds, adapted_landscapes def down_originals(urls): print('开始执行down_originals') if not os.path.exists('originals'): os.makedirs('originals') for i in urls: img_data = requests.get(i).content filename = i[42:] with open('originals/' + filename, 'wb') as f: f.write(img_data) print(f'已下载{filename}') def down_adapteds(urls): print('开始执行down_adapteds') if not os.path.exists('adapteds'): os.makedirs('adapteds') for i in urls: img_data = requests.get(i).content filename = i[42:] with open('adapteds/' + filename, 'wb') as f: f.write(img_data) print(f'已下载{filename}') def down_adapted_landscapes(urls): print('开始执行down_adapted_landscapes') if not os.path.exists('adapted_landscapes'): os.makedirs('adapted_landscapes') for i in urls: img_data = requests.get(i).content filename = i[42:] with open('adapted_landscapes/' + filename, 'wb') as f: f.write(img_data) print(f'已下载{filename}') if __name__ == '__main__': all_url = get_url() originals = all_url[0] adapteds = all_url[1] adapted_landscapes = all_url[2] print('url已分类整合完毕') t1 = threading.Thread(target=down_originals, args=(originals,)) t2 = threading.Thread(target=down_adapteds, args=(adapteds,)) t3 = threading.Thread(target=down_adapted_landscapes, args=(adapted_landscapes,)) t3.start() t2.start() t1.start()
2020年05月09日
1,133 阅读
1 评论
0 点赞
2020-05-08
自动更新QQ昵称为当前时间
先抓到了QQ手机端修改名称的包。然后用python发包,就这么简单。但是速度过快会被禁止修改。就像这样。然后python实现代码如下:import time import requests while True: now = time.strftime('%H:%M:%S', time.localtime()) url = 'https://ti.qq.com/proxy/domain/oidb.tim.qq.com/v3/oidbinterface/oidb_0x587_52?sdkappid=20344' headers = { 'Host': 'ti.qq.com', 'Content-Length': '18', 'Accept': 'application/json', 'Cookie': 'p_uin=替换为你的p_uin; p_skey=替换为你的p_skey', } data = f'{{"str_nick":"{now}"}}' data = requests.post(url=url, headers=headers, data=data).json() print(data) time.sleep(60)这里时间间隔设置的一分钟,1分钟的时候我还没被封。后来作死调成10s就GG了。cookie里面的p_uin的值为0加你的QQ,如我QQ为:78013994,就是o78013994P_skey:这个就需要自己再去抓个包了(虽然网上也有这种快捷网站,不推荐)随便登陆个空间什么的就行了。替换就行了。
2020年05月08日
4,507 阅读
0 评论
7 点赞
2020-05-07
正则表达式手册
字符描述将下一个字符标记为一个特殊字符、或一个原义字符、或一个向后引用、或一个八进制转义符。例如,“n”匹配字符“n”。“ ”匹配一个换行符。串行“\”匹配“”而“(”则匹配“(”。^匹配输入字符串的开始位置。如果设置了RegExp对象的Multiline属性,^也匹配“ ”或“ ”之后的位置。$匹配输入字符串的结束位置。如果设置了RegExp对象的Multiline属性,$也匹配“ ”或“ ”之前的位置。*匹配前面的子表达式零次或多次。例如,zo*能匹配“z”以及“zoo”。*等价于{0,}。+匹配前面的子表达式一次或多次。例如,“zo+”能匹配“zo”以及“zoo”,但不能匹配“z”。+等价于{1,}。?匹配前面的子表达式零次或一次。例如,“do(es)?”可以匹配“does”或“does”中的“do”。?等价于{0,1}。{n}n是一个非负整数。匹配确定的n次。例如,“o{2}”不能匹配“Bob”中的“o”,但是能匹配“food”中的两个o。{n,}n是一个非负整数。至少匹配n次。例如,“o{2,}”不能匹配“Bob”中的“o”,但能匹配“foooood”中的所有o。“o{1,}”等价于“o+”。“o{0,}”则等价于“o*”。{n,m}m和n均为非负整数,其中n<=m。最少匹配n次且最多匹配m次。例如,“o{1,3}”将匹配“fooooood”中的前三个o。“o{0,1}”等价于“o?”。请注意在逗号和两个数之间不能有空格。?当该字符紧跟在任何一个其他限制符(*,+,?,{n},{n,},{n,m})后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。例如,对于字符串“oooo”,“o+?”将匹配单个“o”,而“o+”将匹配所有“o”。.匹配除“n”之外的任何单个字符。要匹配包括“n”在内的任何字符,请使用像“(.| )”的模式。(pattern)匹配pattern并获取这一匹配。所获取的匹配可以从产生的Matches集合得到,在VBScript中使用SubMatches集合,在JScript中则使用$0…$9属性。要匹配圆括号字符,请使用“(”或“)”。(?:pattern)匹配pattern但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。这在使用或字符“(|)”来组合一个模式的各个部分是很有用。例如“industr(?:y|ies)”就是一个比“industry|industries”更简略的表达式。(?=pattern)正向肯定预查,在任何匹配pattern的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如,“Windows(?=95|98|NT|2000)”能匹配“Windows2000”中的“Windows”,但不能匹配“Windows3.1”中的“Windows”。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。(?!pattern)正向否定预查,在任何不匹配pattern的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如“Windows(?!95|98|NT|2000)”能匹配“Windows3.1”中的“Windows”,但不能匹配“Windows2000”中的“Windows”。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始(?<=pattern)反向肯定预查,与正向肯定预查类拟,只是方向相反。例如,“(?<=95|98|NT|2000)Windows”能匹配“2000Windows”中的“Windows”,但不能匹配“3.1Windows”中的“Windows”。(?<!pattern)反向否定预查,与正向否定预查类拟,只是方向相反。例如“(?<!95|98|NT|2000)Windows”能匹配“3.1Windows”中的“Windows”,但不能匹配“2000Windows”中的“Windows”。x|y匹配x或y。例如,“z|food”能匹配“z”或“food”。“(z|f)ood”则匹配“zood”或“food”。[xyz]字符集合。匹配所包含的任意一个字符。例如,“[abc]”可以匹配“plain”中的“a”。[^xyz]负值字符集合。匹配未包含的任意字符。例如,“[^abc]”可以匹配“plain”中的“p”。[a-z]字符范围。匹配指定范围内的任意字符。例如,“[a-z]”可以匹配“a”到“z”范围内的任意小写字母字符。[^a-z]负值字符范围。匹配任何不在指定范围内的任意字符。例如,“[^a-z]”可以匹配任何不在“a”到“z”范围内的任意字符。匹配一个单词边界,也就是指单词和空格间的位置。例如,“er”可以匹配“never”中的“er”,但不能匹配“verb”中的“er”。B匹配非单词边界。“erB”能匹配“verb”中的“er”,但不能匹配“never”中的“er”。cx匹配由x指明的控制字符。例如,cM匹配一个Control-M或回车符。x的值必须为A-Z或a-z之一。否则,将c视为一个原义的“c”字符。d匹配一个数字字符。等价于[0-9]。D匹配一个非数字字符。等价于[^0-9]。f匹配一个换页符。等价于x0c和cL。 匹配一个换行符。等价于x0a和cJ。 匹配一个回车符。等价于x0d和cM。s匹配任何空白字符,包括空格、制表符、换页符等等。等价于[ f v]。S匹配任何非空白字符。等价于[^ f v]。 匹配一个制表符。等价于x09和cI。v匹配一个垂直制表符。等价于x0b和cK。w匹配包括下划线的任何单词字符。等价于“[A-Za-z0-9_]”。W匹配任何非单词字符。等价于“[^A-Za-z0-9_]”。xn匹配n,其中n为十六进制转义值。十六进制转义值必须为确定的两个数字长。例如,“x41”匹配“A”。“x041”则等价于“x04&1”。正则表达式中可以使用ASCII编码。.num匹配num,其中num是一个正整数。对所获取的匹配的引用。例如,“(.)1”匹配两个连续的相同字符。n标识一个八进制转义值或一个向后引用。如果n之前至少n个获取的子表达式,则n为向后引用。否则,如果n为八进制数字(0-7),则n为一个八进制转义值。nm标识一个八进制转义值或一个向后引用。如果nm之前至少有nm个获得子表达式,则nm为向后引用。如果nm之前至少有n个获取,则n为一个后跟文字m的向后引用。如果前面的条件都不满足,若n和m均为八进制数字(0-7),则nm将匹配八进制转义值nm。nml如果n为八进制数字(0-3),且m和l均为八进制数字(0-7),则匹配八进制转义值nml。un匹配n,其中n是一个用四个十六进制数字表示的Unicode字符。例如,u00A9匹配版权符号(©)。常用正则表达式用户名/^[a-z0-9_-]{3,16}$/密码/^[a-z0-9_-]{6,18}$/十六进制值/^#?([a-f0-9]{6}|[a-f0-9]{3})$/电子邮箱/^([a-z0-9_.-]+)@([da-z.-]+).([a-z.]{2,6})$//^[a-zd]+(.[a-zd]+)*@([da-z](-[da-z])?)+(.{1,2}[a-z]+)+$/URL/^(https?://)?([da-z.-]+).([a-z.]{2,6})([/w .-]*)*/?$/IP 地址/((2[0-4]d|25[0-5]|[01]?dd?).){3}(2[0-4]d|25[0-5]|[01]?dd?)//^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/HTML 标签/^<([a-z]+)([^<]+)*(?:>(.*)</1>|s+/>)$/删除代码\注释(?<!http:|S)//.*$Unicode编码中的汉字范围/^[u2E80-u9FFF]+$/
2020年05月07日
1,445 阅读
0 评论
0 点赞
2020-05-06
分析最近的一个网课答案查询2.0
这是一次没啥技术含量的分析,只为水一篇博文嘿嘿,这个接口也是这个作者免费开放的。在此感谢作者最近看到一些网站都有这个网课答案查询软件于是想着,这么简单的软件,应该不会很复杂吧,然后下载之后进行了抓包(谁让咱不会逆向涅)打开工具:Wireshark(还真是个强大的软件呢),随便查询一下,然后慢慢找吧似乎就是这个了把这个值,转码看下吧好吧这个是返回值了,应该没错了,然后是这个请求url,继续拿去转码一下三个值:title,secret,token然后既然是get请求,直接放到浏览器看下,老铁没毛病。然后就是分析三个值了,第一个title就是关键词了,第二个secret暂时不知道,第三个token估计是秘钥吧然后打开那个网站看一下好吧三个值是什么意思知道了,secret加密文件加密的,token是作者授权的,所以token应该不变就这一个就行了。既然是加密文件,那要么是在本地文件,亦或者还有接口,然后继续翻抓包软件吧。这次把目标锁定在http协议上。所以加一个过滤器嗯,又看到一个继续转码看看t=后面跟的是之前搜的东西,放到浏览器打开看下这串值似乎就是之前的加密文件加密后的东西/topic/getSubject?title=lanol&secret=8942b58ebfe8e11133e7127e47256fe1&token=C00B0C13B9814BEA5360766F4445D623然后看下这个页面源代码吧。引用了一个JS,然后就是加密。然后思路:把这个JS文件保存,用python调用。import execjs with open('jm.js', 'r') as f: js = f.read() question = 'lanol' jiami = execjs.compile(js).call('get_tk', f'{question}') print(jiami)然后ok,生成的secret一模一样然后就可以查题了完美然后我又翻了一下抓包记录打开到浏览器看了下感谢这个软件的作者了最后python代码:import execjs import requests def answer(question, jiami): url = f'https://www.150s.cn/topic/getSubject?title={question}&secret={jiami}&token=C00B0C13B9814BEA5360766F4445D623' html = requests.get(url).json() return html print("欢迎使用Lan网课查题助手") print("www.lanol.cn") with open('jm.js', 'r') as f: js = f.read() while True: question = input("请输入题干(六个字以上):") jiami = execjs.compile(js).call('get_tk', f'{question}') result = answer(question, jiami) qu = result['title'] an = result['answer'] print(f'题目:{qu} 答案:{an}')js文件:jm.js密码:www.lanol.cn|大小:212KB已经过安全软件检测无毒,请您放心下载。
2020年05月06日
2,281 阅读
0 评论
0 点赞
2020-05-04
易班登录JS
打开网站登陆页面,F12准备就绪,账号密码随便来点击登录,出现两个包,不用想,肯定是第一个。然后这里一个账号是明文,还有个密码是加密的,还有个keystime,看样子就是时间戳了直接搜索password注释是个好东西。看到了base64和rsa加密,继续翻,慢慢找然后就看到了一个login.js,找到了加密的那句话,encrypt打个断点,然后再点击登录,最后停在了这句话。把加密的内容放到控制台看一下确实是我之前输入的密码(大概吧,随便输的,应该是的,嗯)嗯,先写到这,有时间再更----------------------------------------------------------上面跑偏了,既然已经知道是RSA加密了,应该去找公钥吧。什么是RSA(来源于:PC君):
2020年05月04日
5,411 阅读
3 评论
0 点赞
2020-05-04
python的一些加密模块,hashlib,hmac,uuid
md5加密:单向,算法加密后结果是一样的。import hashlib x = hashlib.md5() x.update('www.lanol.cn'.encode('utf8')) print(x.hexdigest())ssa加密:这是一个系列,长度不同。import hashlib h1 = hashlib.sha1('www.lanol.cn'.encode()) print(h1.hexdigest()) h2 = hashlib.sha224('www.lanol.cn'.encode()) print(h2.hexdigest()) h3 = hashlib.sha256('www.lanol.cn'.encode()) print(h3.hexdigest()) h4 = hashlib.sha384('www.lanol.cn'.encode()) print(h4.hexdigest()) h5 = hashlib.sha512('www.lanol.cn'.encode()) print(h5.hexdigest())一个字节占四位,如sha224uuid1:用来生成一个全局唯一的模块uuid3,uuid5:需要一个namespace,加密字符,生成的结果树固定的uuid4:每次打印变化的,随机的
2020年05月04日
981 阅读
0 评论
0 点赞
1
...
45
46
47
...
64