对"无限宝"网校软件的逆向结果总结

 

前几天花了一些时间, 主要是出于好奇和学习的目的, 反编译了无限宝… 以此文总结近一阶段学到的新知识和一些其他的收获吧(?).

软件协议逆向

主要是逆向了网络协议, 但是如果我公布出来被拿去乱玩的话, 无限宝还是会改, 没什么意义, 所以一些具体的细节就隐藏了.

首先是一次 HTTP 登陆, 把用户名.密码(加盐hash), 通过 http 协议发送到 xx.kehou.com, 然后会被重定向到 login.kehou.com 这个域名, 返回一个 ini 格式的文件, 里面包含了你的基本信息和下一步要用到的 LoginServer.

接下来会将返回的 userId, meetingId, name, role 等信息发送到 LoginServer, 和开发人员聊过天之后, 发现 LoginServer 其实不知道你的任何信息, 是通过一个 hash 函数加密之后做的验证.(只不过现在最新版2020/04 好像换了一个函数, 原理类似.)

然后登陆入课堂就可以发送相关操作的包了.

Xposed 开发

源码没有混淆, 只是加了壳, 想要逆向还是不复杂的.

主要就是 Hook 了相关内容之后

关于软件权限问题

  • 安卓摄像头权限

开始发现这个软件会在启动的时候申请所有的运行时权限(比如麦克风, 摄像头), 所以老师在上课的时候可以直接打开你的摄像头… 这样写就使得安卓的运行时权限失去了它本来的意义.

开始我不知道为什么这个软件要这么设计, 也难免遭人质疑是否滥用摄像头获得的数据.

后来因为放在 Github 上反编译的代码被发现了, 然后趁机联系到了他们的开发人员. 问到了答案, 这么一说也非常有道理.(果然还是没有什么开发经验….)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
无限宝开发 2020/3/13 13:22:46
其实还是个思路问题,之前我们规模比较小,像网上吐槽的权限问题,也都是为了减少使用时候的问题

lyc8503 2020/3/13 13:23:34
嗯...(其实我开始反编译就是因为一直听网上说会有隐私问题啊什么的然后就去看看代码...

无限宝开发 2020/3/13 13:23:58
只能说是思路问题,当时的核心思想不在这块

lyc8503 2020/3/13 13:24:25
安卓6加的运行时权限的确增加了一些麻烦...

无限宝开发 2020/3/13 13:25:16
是啊,老师点开麦的时候,等了好久学生给禁了,那也是火大的

无限宝开发 2020/3/13 13:25:46
所以一开始就要了权限,以方便老师为主。。
无限宝开发 2020/3/13 13:27:29
就想钉钉,受众是学生,但付钱的是教育局啊,当然要以教育局的需求为主

无限宝开发 2020/3/13 13:27:56
所以伺候好所有人,臣妾做不到啊
  • PC 驱动问题
1
2
3
4
5
6
7
8
9
10
11
12
13
14
lyc8503 2020/3/15 21:10:23
只不过你们为什么PC上非要用驱动截屏呢

lyc8503 2020/3/15 21:10:44
驱动权限这么高都和SYSTEM同级...难免会让人说把

无限宝开发 2020/3/15 21:10:59
因为那时候直接用API太慢。。没法做屏幕共享

无限宝开发 2020/3/15 21:11:15
那是给老师做屏幕共享用的

lyc8503 2020/3/15 21:11:22
还有屏幕共享功能...?哦哦

也算是颇有收获?

本文采用 CC BY-NC-SA 4.0 许可协议发布.

作者: lyc8503, 文章链接: https://blog.lyc8503.net/post/vizpower-conclusion/
如果本文给你带来了帮助或让你觉得有趣, 可以考虑赞助我¬_¬