惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
V2EX
博客园 - 【当耐特】
Cyberwarzone
Cyberwarzone
B
Blog
U
Unit 42
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
WordPress大学
WordPress大学
美团技术团队
Hugging Face - Blog
Hugging Face - Blog
大猫的无限游戏
大猫的无限游戏
博客园 - 聂微东
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
博客园 - 叶小钗
F
Full Disclosure
Microsoft Azure Blog
Microsoft Azure Blog
Recorded Future
Recorded Future
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
小众软件
小众软件
云风的 BLOG
云风的 BLOG
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Cisco Talos Blog
Cisco Talos Blog
阮一峰的网络日志
阮一峰的网络日志
C
CERT Recently Published Vulnerability Notes
F
Fortinet All Blogs
C
Cyber Attacks, Cyber Crime and Cyber Security
C
Cisco Blogs
The Hacker News
The Hacker News
Know Your Adversary
Know Your Adversary
S
Securelist
S
Schneier on Security
P
Privacy International News Feed
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
AWS News Blog
AWS News Blog
J
Java Code Geeks
T
The Exploit Database - CXSecurity.com
The Last Watchdog
The Last Watchdog
S
Secure Thoughts
C
Cybersecurity and Infrastructure Security Agency CISA
H
Heimdal Security Blog
博客园 - Franky
P
Palo Alto Networks Blog
PCI Perspectives
PCI Perspectives
T
Tailwind CSS Blog
IT之家
IT之家
Engineering at Meta
Engineering at Meta
Latest news
Latest news
P
Proofpoint News Feed
量子位
Apple Machine Learning Research
Apple Machine Learning Research
K
Kaspersky official blog

云萧的咕咕屋 - RSS

利用漏洞解锁 OPPO Find X8 - 云萧的咕咕屋 自编译更新服务器内核 - 云萧的咕咕屋 部署完整WebUI功能的MinIO - 云萧的咕咕屋 在Windows中用GPG签名Git的commit - 云萧的咕咕屋 联通友华PT927G光猫破解小记 - 云萧的咕咕屋 【小白向】Android内核折腾计划(一)——起步 - 云萧的咕咕屋 咕咕的2023年终总结 - 云萧的咕咕屋 GitHub Actions上手全指南 - 云萧的咕咕屋 在QEMU安装Windows on ARM - 云萧的咕咕屋 E3神教装机体验 - 云萧的咕咕屋 多语言网站工具 —— Vue I18n轻松上手 - 云萧的咕咕屋 使用zsh美化你的终端并提高开发效率 - 云萧的咕咕屋 Redmi K20 Pro类原生搞机指南 - 云萧的咕咕屋 云萧 以及他的博客的2022年终总结 - 云萧的咕咕屋 如何使Vite将不同类型的文件输出到不同目录下 - 云萧的咕咕屋 通过各云厂商的邮件推送配置WordPress发信机器人 - 云萧的咕咕屋 快速上手前端打包工具Webpack(二) - 云萧的咕咕屋 安卓设备通过Termux实现本机ADB - 云萧的咕咕屋 快速上手前端资源打包工具 — Webpack - 云萧的咕咕屋
壹教云班牌程序反编译破解密码思路及实现 - 云萧的咕咕屋
2025-10-30 · via 云萧的咕咕屋 - RSS

高中时候写的草稿,到了大学了应该能放心发了吧_(: з」∠)_

教室门口的智能班牌是个跑 AOSP 8.1 的 rk3399,平时我们当平板用。但被维护员更新 launcher 后,开机就会自动屏蔽状态栏和导航栏,无法退出班牌程序,除非输入密码进入维护模式。好在咕咕此前已提取了 launcher 和软件,尝试反编译破解发现逻辑并不难,故分享。

#确定密码是否为联网下发

首先进入对应界面随便输入个密码,并在此时打开抓包工具。两个 App 在提交密码时都没有出现任何网络请求 —— 说明其密码均为本地算法生成。

那很好了,直接解包开干😋

#破解 MDM launcher

以下是班牌的默认桌面: 横屏全屏的,长这样

横屏全屏的,长这样

首先打开密码输入界面,查看提示文字以定位 class。

那么直接解包 APK,打开它的 dex,搜索 “请输入密码”,找到了该对话框所在的 class。

要想分析输入密码后发生了什么,就看点击文字为 “确定” 的按钮后会发生什么。该按钮的代码即 .line 1407 中的内容: 而根据 Android API 文档,用户点击按钮时会调用实现该 API 的类的 onClick() 抽象方法。此时我们就可以定位到 com.eyijiao.mdm.MainActivity$3onClick 方法,它就是密码被传递的地方:

第 67~84 行,程序将传入的 EditText 数据转为字符串存储在 p1 中,然后程序比对 p1 是否为空(第 86~97 行),非空则将 p1 赋给 v0,并以 v0 为参数调用 MainActivity.access$1700() 方法:成功则跳转 AppInfosActivity(第 112~126 行,即维护界面),失败则提示密码错误(第 128~141 行)

然而找到 access$1700,发现它传给 getPsd() 方法了😅搁这套娃呢

回到 MainActivity 找到 getPsd,发现也是纯逆天 —— 这玩意儿是当天日期生成的!

首先,给 Calendar 对象设置为当前日期。

然后获取该对象的月份和日,分别存储在 v1 和 v0。

将 v1(月)和 v0(日)以字符串形式拼接起来,存储在 v0。举个栗子:今天是 7 月 21 日,那么 v0 寄存的就是 “721”。

最后转换为数字再乘以 0x141,即十进制的 321,就是密码!比如 721×321=231441,那么 231441 就是 7 月 21 日的密码。(我去这不是三角洲吗)

现在 MDM laucher 已经被顺利破开了,接下来就是班牌主程序了。乖乖躺好吧我要开动啦~~

#破解主程序

由于主程序 APK 及用于破解的网页现已因意外丢失,故暂无法更新,希望理解~

如果有样本,欢迎在评论区联系,感谢!

#样本下载

MDM launcher:mdm.apk - 蓝奏云

#说结论!

MDM 桌面的密码是:当月和当日拼接后乘以 321。举个栗子,721×321=231441,那么 231441 就是 7 月 21 日的密码。

班牌主程序的密码需要打开这个链接(注:已失效)扫描二维码即可~