海妖杀手好用吗
使用和下载直接拖到最后就完事
发生甚么事了?
疫情严重,学校也搞了个健康打卡小程序,要求同学每天打卡。但是常常会有同学忘记打卡,于是则会被早上10点微信消息+辅导员挂在群里双重提醒。。。
我猜想部分同学是忘记了,部分同学则是早上10点还没起床,这个时候就需要一个”兄弟“帮忙打卡(当然你要保证自己是健康的。。。)
大意了,抓不到包
首先就是一个Charles来抓手机https的包,但是现在的微信小程序很强,抓不得。紧接着看了很多其他解决方案,回头想尝试,发现是自己华为手机,于是只有另寻出路。
偶然发现知乎有人说Mac的微信能打开小程序了,而我尝试多次还是冰冷一行”请在手机上打开“,一看版本已然最新,猜想因为下载源是AppStore,于是重新下官网版,果然针不戳。
紧接着便是抓包分析,写shell脚本。
请求有大问题
POST时候的内容无非就是校园卡信息、时间戳、token等等。当然token是客户端加盐了然后取了md5传上去的,不知道学校其他地方的token是不是也是这样,就不放出来了(真想看就反编译小程序吧)。
本来小程序当天打卡后会显示已经打卡,然后不会再给打卡的按钮。但是似乎限制只在客户端存在。。。我换了下学号和姓名,轻松”帮“几个朋友”再打卡“(当然只是改了备注,没改温度、地点信息等)。然后再看打卡日历,发现显示的是最新的打卡信息了,说明取数据的时候可能还limit 1了一下。不管怎么说,这玩意儿只有希望大伙讲武德了,别乱搞别人的打卡信息。
区别对待
下载的脚本文件是不需要额外下载操作的
为了机器能直接跑,不下载额外的包,要选择用机器内置的东西,所以Mac和Linux下脚本还是有点区别的。比如date
、md5sum
等等,毕竟Mac下用date
是取不到纳秒的,还是只有用gdate
(当然Mac也可以下载coreutils
然后直接设置下软链接,如下)
1 | brew install coreutils |
然后有类似下图则说明OK了。如果要Mac下用md5sum
也是类似的。
完事
写好了之后自然是点到为止,但是想了一下还是决定加个密。于是用了shc来加密了脚本,注意加密的时候把脚本的用户权限,不是可执行的话改一下就行。
最后scp
传到服务器上去,写个定时任务跑,比如我设置的就是每天早上9:28打卡。【如果Mac下发现定时任务跑不了,大概率是其磁盘的权限不够,看这里解决】
下载使用
下面是脚本文件的下载链接:
建议直接新建一个文件夹将脚本放进去,每天的打卡状态及提示会在你调用后写到日志文件health.log
中,不需要的话删除就行。
假设服务器是腾讯云的,且所在文件夹名字为health:
1 | 到绝对路径/health目录下 |