后记:lsphunter与管控平板的那些事
累计到最近提交,所有领创版本并没有对本程序产生任何威胁,这远远超出我的预期,稳定运行了两年。我曾认为,被发现了可能就会修掉这个问题,实际并没有。本打算在8ce796b提交点我已经放弃维护本项目之后,领创甚至在后期的版本明显加大了可控范围,这是我意想不到的,于是重新复活了这个项目,目前我也不知道它还会撑多久
看起来牢不可摧的领创平板后记:lsphunter与管控平板的那些事,是怎么被一步步破解成这样的
不同管控大版本间差异
1.管控版本号
管控版本号通常由ISV+下划线+版本号
不同ISV区别较大,但是大多数都用的是通用,tongyongshengchan激活设备管理器是什么,也有的要用第三方sso登录的,加上定制的桌面如四中网校
2.不同管控版本之间明显差异
版本明显特征其他
4.xx前
管理员账号admin
领创管控初期(2018?-2019?)
5.0.xxx
管理员密码进入
在2xx版本任务栏透明
5.01.00(1-5)
算密码换算法了
修了很多bug
5.01.011.x
二维码扫描进入管理员,后期同
无
5.02.xxx
ExecuteCmdService
解控可以直接被外界拉起
5.03.xxx
修复了解控漏洞
修了很多bug?
5.04.xxx
广播api添加可以开启usb的功能
暂未发现通用生产版本
6.xx.xxx
换UI了,蓝色底
毕业了
开箱之后
开箱之后发现内置一个不能上网的bing浏览器后记:lsphunter与管控平板的那些事,有一个卡槽,recovery可以恢复出厂
当时很简单,卡里导图片/视频往平板里插就能满足全班同学一天的需求
即在非联网情况下,插入内存卡可不被弹出(已被修复)
初期:刷机家长模式
刷机无非是一个破解比较简单的一个方式,如本人在最初就是刷机的方式激活设备管理器是什么,在通过某些特殊渠道之后搞到了管控的包,发现了家长模式的活动,启动之后,通过简单的反编译之后,得到密码abc12345进入后放开网络限制可能会上网。
开启adb.管理员密码?
在2020-2021年满破解群里都是问密码是多少的,因为我的机器刷过机,所以抓包相对来说比较简单,所以我在简单配好一个fiddler+代理的环境即可抓到app包,但是后来发现有加密,经过一顿反编译后,获取到了AES秘钥和初始向量(一共两套)对更新策略的包进行抓包即可获取管理员密码。
令人欣慰的是,打开usb链接会打开adb调试,这样用am指令直接打开家长模式即可,进入后,当时也成功验证了我的猜想,内置的浏览器真的可以上网了。在后期研究发现,其实没那么复杂,发一个广播就好了
不到一个学期,有人的上网平板就被发现了,不到几周我们就被全体刷入新系统。
我们原来是androidP 后来给我们刷的androidQ的管控
LinspierDemo研究过的平板具体操作原理联想
我的系统在我刷机的时候就已经解锁了BootLoader,所以在学校第一次统一刷机时成功获取到了系统分区镜像。根据领创反编译的源码来看,我们通过调用系统framework的形式成功调用到mdm函数。通过改包安装一个自己操作的mdm。
framework只有函数名,要知道具体操作只能挨个试吗?
可在系统service.jar中可以找到相关实现
通过很多机器的研究,总结出了联想mdm的基本规律
机型安卓版本mdm应该调用的
TB-X605F
mia
mia
TB-X605FC
csdk+mia
mia
TB-X505F
mia
mia
TB-X505F
10
csdk
csdk
联想新机器(多为联发科)
10,11
csdk
csdk新特性
联想新机器(未知)
12
csdk5
未适配
miamdm是专门为这种特殊系统设计的,而csdk可在安卓10(包括)及以上的系统都存在,是商业mdm。
既然是商业mdm,为什么可以随便调用? 没有验证吗
在教育系统里,验证删了,默认csdk全部可以调用正常(国际)版是不能调用的,如果调用需要签证书
在早期的linspirerdemo中,基本支持写app白名单,网络白名单,开网之类的。但是只支持自己的平板。后期逐步适配了当时通用的605系平板。
每个rom的函数不同,如何保证调用不出崩溃
挨个try catch
华为及其他平板
领创在app中添加了很多的广播操作,包括写app白名单,网络白名单,以及收起各种按钮的功能。我们发送广播后,mdm由领创自由处理。
详见 [[非官方-领创广播API接口文档]]
通过这些操作之后,可以基本控制大部分功能。
华为平板可以通过修改设置来控制系统设置中显示的设备项,
书派 T11 (Supi)
lspdemo的使用者有将近一半是山东271集团旗下的书派平板。此类平板mdm十分滑稽,甚至可以卡没,具体原理是通过魔改面具,魔改lsposed,hook住安装,网络,设置,webview等等接口来实现管控。但是可以说是特别烂的。
针对此类管控我特意做了一个适配此类平板的接口,大部分依然由领创决定,一些细节类的特殊处理。书派魔改的面具中,我们找到了相关的广播接口,最强的是可以直接执行root命令,安装面具模块等。但是其中有一个magic验证,在shell中这种字符需要转义,具体不多说了。
希沃平板(xp21a)
内置mdm api当时由于学业压力未能实现,但是找到了通过service call的形式调用mdm,解开限制,从而安装lspdemo。
程序原理向储存分区释放一些基本app进入程序:针对联想,csdk激活deviceowner,mia弹窗激活设备管理器,冻结领创,放开按钮,开网开防火墙,解禁,禁止恢复出厂(防止云控),解冻app,防止卸载。针对通用机型:管控机:激活设备管理器,释放按钮,解冻app,针对有后门的领创开usb蓝牙,设置白名单,解禁截图等细微操作(看版本)华为解控机:提醒激活deviceowner,防卸载,防恢复出厂,解冻app。ui渲染,白屏,等待音量键操作,音量上键盘5次直接恢复出厂,音量下进入程序,若用户设置密码可输入密码,也可以输入自毁密码。退出程序:针对联想:解冻领创,(可选)通过虚拟专用网阻止领创系列程序联网,冻结已经勾选的app,写白名单,防卸载,拉起领创四中平板:可以设置不解冻领创,(可选)通过虚拟专用网阻止领创系列程序联网,拉起北四桌面,assistlauncher强制设置桌面其他:冻结已经勾选的app,(可选)通过虚拟专用网阻止领创系列程序联网,拉起领创,壁纸设置官方壁纸。程序小功能
1.超级名单:超级名单就是在进入程序时解冻,在离开到领创时自己冻结或者隐藏。此类操作通常为了防止实机检测
2.杀进程:安卓10的recent与桌面绑定,所以有的程序可能打不开最近任务,所以有了杀进程的功能
3.悬浮窗:悬浮窗是快速恢复到领创模式下,与back退出一样的效果
4.活动启动器:照着github开源的扒下来的,对t11带su进行了一些修改,使得可以su启动,剩下都一样
5.adb-otg:照着github开源的扒下来的,对一些开启adb的机型而手头没有电脑,但是有装有lspdemo的平板而设计,可以通过usb-usb线连接对方平板执行adb shell,但是经过测试,在安卓12以上的机器会有bug。
6.多功能重启选项:各种重启选项
华为专区:
1. 设置隐藏:通过修改系统设置达到此效果
2. 解控:程序后门接口实现,在5.03已修复,华为(emui10/+)需要在设置中开启关联启动,否则不起效果。
3. 蓝牙:设备管理类,通过设备管理器控制。
4. hms core:设置显示华为账号的可以选择启用或者禁用,程序设置也有。
5. 通知栏菜单:(有bug)通过设备管理器实现,全屏操作,屏蔽通知栏菜单。
6. 锁屏工具栏:修改系统设置
7. 手势导航:修改系统设置
8. 安全模式:修改系统设置
联想专区:
1.设置导航栏:打开设置隐藏项目
2.设置锁屏密码:打开设置隐藏项目或者mdm api
3.白名单清空:清空白名单实现无app管控
4.允许oem开关:新mdm api
5.允许危险权限:新mdm api
T11专区:
T11的内置面具需要鉴权,要广播,所以没有回调。1.禁用面具模块:通过magisk的标准touch disable方法2.打开t11调试和edxp:am start ...3.针对t11会有开机自动执行root指令的功能。(已修复)
设备管理
大部分都是调用devicepolicy的api,共有的。清空领创壁纸是领创的广播,还有部分打开设置的功能
领创专区
1.领创算登出密码:照着反编译的代码直接复制到程序,有时候需要userid。
2.领创算管理密码:aes加密,找到对应api获取即可
3.领创算userid:用更新策略的api,用必要信息,直接获取即可
4.领创伪装app上传:用领创api拉取app列表直接伪造假白名单。
5.第三方管控隐藏列表:有的管控依赖于第三方桌面,但是第三方桌面有api,可以控制隐藏
评论列表 (0)