Anschluss_zeit
本帖最后由 Anschluss_zeit 于 2023-3-11 19:25 编辑

这几天不是看到有人在弄自动签到防断签吗,正好因为自己也在做一个比较类似的项目(洛谷机器人),就套着原来写的壳子来写了一个防断签的脚本
开源库https://github.com/Anschluss-zeit/MCBBS_Auto_SignIn
原理其实很简单,我看了下之前MoonCakeMC的帖子,讲的不算是很详细,我就来稍微补充下
MCBBS验证身份的机制就是通过两个名为auth和saltkey的cookie进行验证的
只要设置了这两个cookie,其他的cookie就会自动生成
每个页面的底部都有一个ajax脚本,访问页面的时候会自动对签到程序的api fetch一次。
这个api有一个formhash的参数(key参数可以随便生成),可以在页面底部找到
  1. function fcdd4e2**7(){NotificationGet.load().then(function(b){b.get().then(function(a){a=a.visitorId;setcookie("last_message_key",md5(a+"fcdd4e296**7"));setcookie("last_formhash",md5("fcdd4e2**7"));ajaxget("https://www.mcbbs.net/plugin.php?id=dc_signin:check&formhash=dd4e2**7&key="+a)})})};
复制代码
可以看到这里的formhash是dd4e2**7(**两位)
我就采用了nodejs的request库获取了网页的内容,在内容中查找formhash
这个formhash类似于会话id,只要你不更换网络环境应该是不会改变的
再根据这个规则生成一下last_message_key和last_formhash就可以请求了
验证cookie有效也很简单,带cookie访问主页,如果能查找到“距离下一级还需要”,就说明cookie有效
最后再用setInterval进行定时访问即可
如果需要使用的话进入github开源库按照提示使用即可

teddyxlandlee
好的你代码炸了()
全是HTML

Anschluss_zeit
teddyxlandlee 发表于 2023-3-11 19:14
好的你代码炸了()
全是HTML

啥?(
什么全是html

teddyxlandlee
function fcdd4e2<span style="background-color: rgb(255, 255, 255);">*

         

2948653873
能用了吗

Anschluss_zeit

能,我已经挂上了

MoonCakeMC
本帖最后由 MoonCakeMC 于 2023-3-12 18:15 编辑

居然不@我(恼
不过我的东西被大家用了还是很开心的

我对html和js其实不算很熟
感谢大佬补充cookie机制,我研究了半天没研究出来(太乱了)

(多说一句signin是登录,签到应该是checkin

没空的人zero
为啥要防断签,一直不断签不就拿不到连签奖励了嘛

zwb_dwz
神器!这是!

shuzhishuzhi
能用好啊好

幻界大陆
只想说杂用看不懂大佬