对某校园跑的分析
本文只讲原理,不提供软件,切莫以身试校规
校园跑是微信小程序,没有也无法实现反模拟器和反分析,这给了我们极大的便利
常规方法配置好模拟器抓包环境,打开校园跑,开始分析
从抓到的请求包可以看出,程序逻辑相当简单:开始跑步时请求/start/running
获取记录码,跑步中每5秒发送一次心跳包/save/running/track
报告坐标,结束跑步时请求/finish/running
并判定成绩
那破解方法也很简单,要么伪造新数据,要么重发老数据
伪造新数据实现起来有点麻烦。重发老数据相较而言就很简单,模拟器虚拟GPS定位跑一趟,保存抓到的数据重发
心跳包的格式类似这种,我们需要的是经度和纬度数据
1 |
|
burp导出的是xml文件,懒得解析了就直接拿正则表达式暴力匹配,拿出所有数据保存到json中便于遍历
1 |
|
有了数据,写程序重发就行。不过这种方法的缺陷也很明显,那就是每次跑步的路径和配速都一样,加大了被发现的概率(也许可以实现更高级的算法,对坐标数据添加一些噪声,相信后人的智慧,笑)
检测作弊
我没法查看后台,检测方法也只是猜测
跑步路程分为总跑步路程和有效跑步路程,现实中跑步因为有各种干扰因素存在,总有一些违规的数据,后台使用了一些申必算法过滤掉了无效数据,最终的有效跑步路程小于总跑步路程
但是模拟GPS定位就没有任何干扰,导致有效跑步路程等于总跑步路程,检测方法不言而喻
也可以检测跑步的路径和配速,检测是否雷同
这些方法很容易用算法自动化实现,后台报警,人工复核,一抓一个准!
对某校园跑的分析
https://crackme.net/articles/campusrun_analysis/