噫!这个APP有毒!——学校作业APP使用有感

学校的为了让我们在寒假继续追求卓越,让我们度过一个开心快乐的寒假,给我们送了个惊喜
——又双叒叕推出了个新的作业提交系统
就是那种学生写作业拍照片上传到这个APP上老师用后台系统判作业的那种东西。
学校可以说是每次放假都推出个新系统,这回又搞了个新系统,叫“小鑫作业”。

——出这个系统可以说是用意很明显啊,叮嘱我们追求卓越,不过放假了谁还写作业(误
但是这个APP,真的是想好好吐槽一发。

震惊,这个APP的幕后真相居然是....!

首先,这次寒假,老师给我们家长发了一个二维码下载手机端APP,然后......
我用的是安卓手机,打开Show layout bounds然后一看,诶?

所有的元素都带着边框......也就是......这个APP跟上次那个HTML5套壳看来是大有区别?!
这才几个月时间,他们公司技术栈就大换血了嘛?
接着到交作业的时候我才明白,哦,原来只有录入答案这个列表这里是原生,其实只要涉及到提交作业啊什么的都是浏览器。

只有帅的人才能用得了的图片上传功能


然后写完作业了提交发现上传失败。这个图片上传系统是原生的,那......
嗯,拿APK反编译了,混淆了,啥也没得到。
于是抓包.........

(吹一波Fiddler 4,真好用嘿嘿嘿)


发现它向一个API请求得到了七牛的Token,然后.....它就激动地给qbox.me:443发了个空包.
估计是调七牛云安卓的SDK的时候搞炸了.

后来测试,我出现这个问题的时候用的是WIFI连接,我用移动流量上传就能正常,移动流量再切换到WIFI也正常...
估计是跟我WIFI的代理设置什么的有关?或者是我这里的DNS配置有关?迷之错误.

然后我自己写了个客户端

在经过几天的试用之后呢,发现这个客户端太垃圾了.
可能是苹果端要上架APP Store,APP走的是苹果统一的API,苹果没有这个问题.
安卓端最不能忍的就是,上传作业图片,只能拍照!只能拍照!只能拍照!也就是我根本就没办法上传别人的照片!

(当然,能上传我也不会上传别人的照片,嘿嘿嘿)

另外这个图片上传功能太脑残了!经常出问题!
并且还有一种神奇的效果,能把本来是个高清的图片压低画质,压缩就压缩吧,压缩的一点也不清晰,老师根本看不清我拍的照片到底是个啥。
本来很清晰,然后上传上去的照片很模糊,老师就会认为拍照片拍的技术有问题。

通过抓包的方式大概摸清楚了怎么玩,
其实是后台有一个用现成的ASP.NET的MVC框架(估计是因为工期赶,最后上线的成品里隐隐约约还能找到一点DEMO的影子
只要发POST接数据就行了。
最后这个客户端已经写好了:
https://github.com/tdiant/hsyzhdfx_SchoolThings/tree/master/BigXinHomework
【全程没有注释并且变量名乱用的超级恶心的东西!(因为急着用

这个东西最神奇的地方在于疑似是用来反盗版而发明的奇特的登录机制

在core.js里我有一个login函数,里面一开始发了个data是空的POST请求,然后又发了一个正常的POST请求,这不是什么问题,而是这个奇特的系统就这么写的
一开始我直接发了个post的login请求,然后发现返回登录错误,我就特别纳闷,这是咋回事?
然后仔细看了抓包log,发现这个APP每次给服务器请求的时候,发的包都是偶数个。
亲自试了一下才明白为什么,第一个包相当于告诉服务器“我来了”,第二个包才是正正经经的登录!这个东西真优秀!