czp's blog

模拟超星网课Android客户端

本文撰写时的 学习通 版本 4.0.1

这个 超星 有好几个名字, 慕课, 尔雅通识课, 泛雅, Android APP 叫 学习通.

虽然这玩意有那么多名字, 但是有一件事情是亘古不变的, 那就是国内大量学校使用这个网课平台来填充学生的课程表. 而这家网课平台的课程质量普遍不佳, 分辨率低, 教师口音重, 教授内容废话连篇, 所以我们就想到了, 能不能不看这些网课呢.

这家网课平台的 Web 端的视频播放器是一个 Flash, 监听用户鼠标事件, 一旦用户鼠标移出 Flash 区域或者将浏览器最小化, 都将暂停视频直到鼠标重新放上. 而 Android 客户端就更是精彩绝伦, 视频播放的那个 Activity 直接是一个 WebView, 同样是通过 js 来监听切换到后台的事件, 令人啧啧称奇.

我们今天就来探究一下这个 超星 的 Android APP 是怎么运作的.

Read More

Hexo插入图片

本文撰写时的 Hexo 版本 3.7.1

虽然如何在 Hexo 中插入图片是有一篇官方中文教程的, 详见此处 https://hexo.io/zh-cn/docs/asset-folders.html

但是似乎很多人依然看不明白, 所以这里通俗的讲解一下如何在 Hexo 博文中插入图片.

外部图片

首先是外部图片, 也就是图片不存储在本地的情况. 这种情况下, 只需要使用通常的 Markdown 语法来引用图片即可, 例如

Read More

Gitment的redirect_uri_mismatch问题

很多人选择使用 Gitment 作为评论系统, 由于 Gitment 只需要前端引入, 因此使用非常简单.

如果你需要的是在 Hexo 使用 Gitment 的教程, 可以看这篇文章 http://www.codeblocq.com/2018/05/Setup-gitment-on-your-Hexo-blog/

今天要讲的是, 配置好 Gitment 后, 点击前端上的 Login 按钮, 但是被跳转回首页的问题.

然后这个跳转到的 URL 是这样的

https://www.hiczp.com/?
error=redirect_uri_mismatch&
error_description=The+redirect_uri+MUST+match+the+registered+callback+URL+for+this+application.&
error_uri=https%3A%2F%2Fwww.hiczp.com%2Fv3%2Foauth%2F%23redirect-uri-mismatch

Read More

本站已更换为Hexo

本站已更换为 Hexo, 小伙伴们奔走相告!

以前的文章会陆续搬上来, 有些写的比较粗糙的就不搬了, 一些文章会重新写一遍.

模拟Bilibili-Android客户端登录

本文撰写时的 Bilibili Android 客户端版本 5.15.0.515000

截取数据包

首先, 我们可以确信的一件事情就是, B 站的 APP 通过 RESTFul API 来与服务端交互. 我们对 APP 进行反编译, 就可以看到 APP 中使用了 Okio 中的类, 并且引入了 Retrofit 这个第三方库.

接下去, 我们要对 APP 进行 http/https 截包, 通常对 Android 设备的截包的方案是设置系统代理到 PC, 然后在 PC 上对 nat 中的地址进行截包.

这种方案其实很麻烦, 尤其是当使用虚拟机运行 Android 时. 如果数据量不是很大, 我们可以选择使用提供截包功能的 Android 程序来进行截包, 例如 Packet Capture 之类的应用.

Read More

[转]卖程序的小女孩

实验室里冷极了, 没有窗户, 不知道是白天还是黑夜. 这是一周的最后一天——周末. 在这又冷又黑的晚上, 一个蓬头散发的小女孩在工位上坐着. 她从家里出来的时候还穿着一件外套, 但是有什么用呢?那是一件很大的外套——那么大, 不知是哪一年买的. 她工作的时候的, 就把它脱掉了, 实验室的师弟嘲笑说, 可以拿它当抹布.

小女孩只好一个人做实验, 一双小脚冻得红一块青一块的. 她的破显示器屏幕上有一大段程序, 手里草稿纸上还有一大段. 这一整天, 程序还是没调过, 谁也没帮过她.

可怜的小女孩! 她又冷又饿, 哆哆嗦嗦地调程序. 显示器的光落在她的干枯的长头发上, 那头发卷曲着披在肩上, 看上去很久没梳, 不过她没注意这些. 每个桌上都堆满了论文, 实验室飘着一股油墨的香味, 因为这是论文deadline的时间——她可忘不了这个.

她在一行代码上停了下来, 蜷着趴在桌子上. 她觉得更冷了. 她不敢跟老板说, 因为她程序没调过, 没拿到一个数据, 老板一定会骂她的. 再说, 换做别的题目跟这个一样难. 她们头上只有paper, 虽然网上可以下到一些现成的代码, 还是仍然没法用.

她的头脑几乎绝望了. 啊, 哪怕一次小小的成功, 对她也是有好处的! 她敢把上万行的代码修改一遍. 编译运行一下, 来找找问题么?她终于按下回车键开始运行. 哧! 程序开始输出信息了! 一行一行的log开始出来了! 她把小手拢在显示器上. 多么温暖多么明亮的字符啊, 简直像一支小小的蜡烛. 这是一道奇异的火光! 小女孩觉得自己好像坐在一个19寸液晶大显示器前面, 显示器还是全新锃亮的, 颜色鲜艳, 字迹清晰, 上边显示着程序输出的正确结果, 多么舒服啊! 哎, 这是怎么回事呢?她刚把头伸出去, 想看的仔细一些, 程序crash了, 大显示器不见了. 她坐在那儿, 眼前的破显示器上一行刺眼的segmentfault.

Read More