首页
留言
动态
归档
推荐
音乐
工具
Search
1
Emby公益服-上万部电影电视剧免费看
68,095 阅读
2
openwrt-docker部署lxk0301京东自动签到脚本
13,008 阅读
3
QuantumultX-京东签到撸京东豆
11,248 阅读
4
LXK0301京东签到脚本-自动提交互助码
9,699 阅读
5
微信-域名被封监测以及自动更换被封域名
9,215 阅读
随便写写
科学上网
Web开发
瞎折腾
Search
标签搜索
quantumultx
laravel
openwrt
laravel nova
laradock
telegram
DDC/CL
薅羊毛
google adsense
jd_scripts
京东签到
ubuntu
oh-my-zsh
web开发环境
nginx
工具
shadowsocks shadowsocksR
RBAC
权限管理
内网穿透
orzlee
累计撰写
46
篇文章
累计收到
596
条评论
首页
栏目
随便写写
科学上网
Web开发
瞎折腾
页面
留言
动态
归档
推荐
音乐
工具
搜索到
1
篇与
京东cookie
的结果
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日
4,742 阅读
0 评论
0 点赞