首页 生活杂谈

20-12月抓贼记


在上一篇文章提到12月份会有一件有意思的事情发生,今天就来揭示是什么。

事情的起因

我的室友因为洗脚接热水,不小心把一卡通(我学校银行卡、饭卡、澡卡通用一张)丢失,在我们学院群里发布了丢失信息和寻找后无果。
本报以放弃的念头,但室友打开完美校园查看消费记录,竟然发现卡被盗刷了,是在洗澡的地方,但具体楼层我们不清楚,因为我们每层楼都有好几间洗澡隔间。
因为考试,所以大家心里都憋着一股气,所以大家就都想抓住盗刷贼,于是我们就没去挂失,准备抓到他,给他一个教训。

简单分析

当天晚上我们就简单分析了一下盗刷贼的行为
1.他最多也就在澡间用用,像银行和餐厅都是有监控的,他还没胆大到去暴露自己。
2.我们需要定时看完美校园的消费记录,确定位置。
原本想第二天中午去找消费的澡间的位置,但谁也没想到第二天早上,室友就从图书馆发来信息,说在代号XX的澡间洗澡,但此时的我们没有相关的准备,只能一层一层的查看,碰到洗澡的人就问,最后结果很显然,已经错过了。
中午简单又分析了一下原因,有两点:
1.没有位置信息,很难快速找到。
2.完美校园不会主动推送消费信息,只能靠自己查看
只有解决这两个问题,我们才能抓到。

提前准备

因此我们开始寝室中午就每个人行动起来,一个一个的试出每一层楼的每一个澡间代号,并按照顺序逐一列出来。


布局图
代码推送

既然完美校园不主动推送,那我们就得主动去获取,因此我想通过python去监控完美校园的消费情况。通过抓包获取到了完美校园消费请求方式,并以此写出来监控代码,进行每一分钟一次查询,并通过微信推送,推送给我们室友每一个人。
现在所有的问题点都已经解决,万事俱备,只欠东风。

抓捕经过

原本以为晚上是十点多那人就会使用,但一直都没收到信息,直到我们都上床休息后,十一点半左右信息才突然推送,我们所有人(此时我班男生也都参与其中了)紧忙根据信息上的指示快速跑到洗澡地点。
虽然澡间有人,查看后他的一卡通,不是我同学的卡,紧忙给给别人道歉。我们回去找下自己的原因,原因是完美校园的消费记录是有延迟的,这次延迟了十分钟,盗刷贼就是洗澡也都走了,结果无功而返。

第三天早上测试发现洗澡间的延迟有时候也很低,我们写的监控代码没问题,只是简单的将刷卡时间和推送时间代码加到代码里了。于是做好了打持久战的准备。

第三天下午,突然收到推送,在xx洗澡间洗澡,并看到消费记录时间为近一分钟,于是八九个男生就冲了上去(此时我班男生也都参与其中了),那人正在洗澡,被我们抓个正着,一拔卡确实是室友的卡,成功抓到盗刷贼。
盗刷贼
(拍摄视频只记录以防被诬陷,并没有外传。)

爱心教育

虽然盗刷贼有罪,但为了保护他最后的尊严,我们让他穿上衣服,跟我们下楼,避免在他学院的楼层让他丢人。带到我们的楼层里,虽然很多人很想揍他,但作为当代大学生都知道打人是不对的,我们对他进行了思想教育后并对我室友进行了道歉、赔偿后就让他回去了。

最后

这件事让我们这个考试期间都是十分欢乐的,可能以后朋友聚会,这件事还会频频提起,美好的回忆。
代码附上:

import requests
import json
import time
def server(text,desp,choice):#推送模块,可根据自身需求决定采用何种哪家
    if choice:
        key='XXXXXXXXXXXXXX'#提醒大家
    else:
        key='XXXXXXXXXXXXXX'#单独提醒我

    sejson={
        'key':key,#测试,
        'head':text,
        'body':desp
    }
    print(requests.post(url="http://push.ijingniu.cn/send",data=sejson).json())

try:
    url='https://server.59wanmei.com/YKT_Interface/xyk'
    body={
        'token':'XXXXXXXXXXXXXXXXXXXXXXXXXXXX',
        
        'method':'XYK_TRADE_DETAIL',
        'param':'{"beginDate":"2020-12-01","endDate":"2020-12-31","beginIndex":0,"count":1}'
    }

    headers = {
        'Host': 'server.59wanmei.com',
        'Cookie':"XXXXXXXXXXXXXX"
    }
    t=1
    while t:
        ka_return=requests.post(url=url,data=body,headers=headers).json()
        ka_ce=json.loads(ka_return['body'])['data'][0]
        print(ka_ce)
        if ka_ce['description']=='淋浴支出':
            if  ka_ce["opdt"]!="2020-12-25 11:53:55":
                text=ka_ce['termName']+'抓人'
                desp='检测时间:'+time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))+'\r\n刷卡时间:'+ka_ce['opdt']+'\r\n刷卡地点:'+ka_ce['termName']
                print(server(text,desp,1))
                break
        print(f'第{t}次检测中')
        t=t+1
        time.sleep(60)
except:
    server('程序错误','请检查',0)



文章评论

    Colin 访客SafariMac
    1天 前 回复

    反过来想,还得感谢一卡通的丢失,不然怎么会有这么有趣的过程:)

      布衣者 站长ChromeWindows
      1天 前 回复

      是呀,这件事让我班男生都开心好久,这估计是大学期间最美好的回忆。

目录