首页
留言
动态
归档
推荐
音乐
工具
Search
1
Emby公益服-上万部电影电视剧免费看
56,496 阅读
2
openwrt-docker部署lxk0301京东自动签到脚本
12,130 阅读
3
QuantumultX-京东签到撸京东豆
10,446 阅读
4
LXK0301京东签到脚本-自动提交互助码
9,006 阅读
5
微信-域名被封监测以及自动更换被封域名
8,742 阅读
随便写写
科学上网
Web开发
瞎折腾
登录
Search
标签搜索
quantumultx
laravel
openwrt
laravel nova
laradock
telegram
薅羊毛
google adsense
jd_scripts
京东签到
ubuntu
oh-my-zsh
web开发环境
nginx
工具
shadowsocks shadowsocksR
RBAC
权限管理
内网穿透
Python
orzlee
累计撰写
43
篇文章
累计收到
595
条评论
首页
栏目
随便写写
科学上网
Web开发
瞎折腾
页面
留言
动态
归档
推荐
音乐
工具
搜索到
1
篇与
京东
的结果
2021-09-02
京东cookie自动更新维护
前言 薅羊毛门槛越来越高了,京东cookie目前有效期只有一天,有些甚至更短。之前扫码登陆目前看来已经获取不到cookie了,现在获取cookie相对麻烦不少。 前段时间很忙,最近闲下来折腾下。看到github上有些脚本,可以抓包获取京东APP请求中cookie,突然有个大胆的想法。如果我让脚本把获取的cookie发送到自己的服务器,服务器自动更新维护cookies.list文件,那么每天打开下APP即可。像IOS有快捷指令APP,让它自动化,每天按时打开京东APP更新cookie,让后服务器自动维护岂不美哉!缺点就是每个用户都得有个可以执行脚本的APP。 废话不多说,干就完了 由于我用的是软路由,openwrt上跑docker(没错,还是LXK0301大佬的那套,自不过修修补补勉强用着,不过目前蛮多用什么面板的!),所以要复杂一点,服务器上部署可以少很多步骤。在openwrt上需要开启frp客户端,然后要映射docker容器端口到本地。还需要一台服务器搭建frp,主要是服务端会搭建在openwrt上,方便外网访问API。在openwrt上部署服务端,接收请求更新本地cookie文件就好了。 服务端 服务端不需要太复杂,用node.js弄个简单的就好了,根据cookie中的pt_pin来替换整行cookie(没有新增哦,只能提换已存在的): const http = require('http') const fs = require('fs'); const path = require('path') const file = path.resolve(__dirname, '../logs/cookies.list') //路径不同需要改改,你当期间脚本文件相对路径 function writeCookie(pt_key, pt_pin) { const re = new RegExp('.*'+ pt_pin +'.*', 'g') const cookie = `${pt_key};${pt_pin};` // console.log(re) fs.readFile(file,'utf8',function(err,data){ // console.log('替換前' + data) let result = data.replace(re, cookie); // console.log('替換後' + result) fs.writeFile(file, result, 'utf8', function (err) { if (err){ console.log(err) } }); }) } const server = http.createServer(function(request, response) { const contentType = request.headers['content-type'] // response.setHeader('Content-type', 'application/json') // && contentType === 'application/json' if (request.method === 'POST' && request.url === '/cookie/update') { let body = []; request.on('data', (chunk) => { body.push(chunk); }).on('end', () => { // console.log(Buffer.concat(body).toString()) try { body = JSON.parse(Buffer.concat(body).toString()); if (body.pt_key && body.pt_pin) { writeCookie(body.pt_key, body.pt_pin) // console.log(body.pt_key) response.end('OK'); } else { response.statusCode = 400; response.end('Invalid param'); } } catch (e) { response.statusCode = 400; response.end('Invalid param'); } }); } else { response.statusCode = 404; response.end(); } }) const port = 8888 const host = '0.0.0.0' server.listen(port, host) console.log(`Listening at http://${host}:${port}`) 运行 node 脚本名即可启动服务,对于服务器上部署,我还是推荐使用 pm2 来管理 (至于有什么有点,点进去官网了解下吧!): # 安装 $ npm install pm2@latest -g # or $ yarn global add pm2 # 运行 pm2 start 脚本名 客户端 脚本在此 jd_appopen.js, 只需要稍作修改即可: /* 杀掉后台后打开京东app获取app_open 在脚本日志查看值 [MITM] hostname = api.m.jd.com ===========Surge================= [Script] jd_appopen = type=http-request,pattern=^https:\/\/api\.m\.jd\.com\/openUpgrade, max-size=0, script-path=jd_appopen.js ===================Quantumult X===================== [rewrite_local] # jd_appopen ^https:\/\/api\.m\.jd\.com\/openUpgrade url script-request-header jd_appopen.js =====================Loon===================== [Script] http-request ^https:\/\/api\.m\.jd\.com\/openUpgrade script-path=jd_appopen.js, timeout=3600, tag=jd_appopen */ const $ = new Env("app_open") if ($request.headers) { let cookie = ($request.headers.Cookie || $request.headers['Cookie'] || $request.headers['cookie'] || '') let pt_key = cookie.match(/(pt_key=[^;]*)/)[1] let pt_pin = cookie.match(/(pt_pin=[^;]*)/)[1] if (pt_key && pt_pin) { console.log('================') console.log(`${pt_key};${pt_pin};`) console.log('================') const options = { "url": `换成你的域名/cookie/update`, 'body': JSON.stringify({ "pt_key": pt_key, "pt_pin": pt_pin }) } $.post(options, (err, resp, data) => { try { if (err) { $.msg("app_open获取成功!", `更新cookie失败: ${JSON.stringify(err)}`) console.log(`pp_open获取成功,更新cookie失败: ${JSON.stringify(err)}`) } else { console.log(`更新cookie: ${data}`) } } catch (e) { $.logErr(e, resp) } }) } } $.done($request.headers) ... 然后使用你手机APP(Surge、Quantumult X、Loon、shadowrocket)添加即可,shadowrocket我试过也可以,成本相对其他app应该便宜点! IOS快捷指令 在快捷指令APP中添加个自动化,运行前询问看自己情况开启,这里的shadowrocket可以换成其他执行脚本APP,如果你跑脚本的APP常驻打开那么就可以删掉shadowrocket部分,启动此自动化需要打开: 快捷指令有个缺点,不是所有自动化都可以锁屏运行,像这个也是,但是会发送通知,点击通知就可以,或者自己不使用,每天自己手动也是一样的! 结语 没有写很详细,这些也就是大概思路,还有很多值得优化的地方。京东这次动作能刷下不少代挂了,操作成本太高了。对于三五个好友玩玩还行。如果喜欢折腾的应该能按照思路完善吧,写得太详细有时候真不是件好事!
2021年09月02日
3,707 阅读
0 评论
0 点赞