华为荣耀3X root后不可写问题解决
2015-07-21 15:12
344 查看
工作中发现,华为荣耀3x在Root后,无法往/system分区中写入内容。跟踪发现是在mount后失败。而root精灵的root方案虽然可以成功root,但是root成功后,重启手机,原先写入/system分区中的内容全部消失不见。
/*
转载请注明出处:http://blog.csdn.net/jinangl_vsnake/article/details/46986081
如有交流,发送至邮箱jinangl@163.com
*/
为了解决这个问题,发现国内另一款知名root软件可以无此副作用(root后重启写入/system的内容)还在。因此逆之,找出如何实现的。
通过逆向,提取方案,分析原理,发现此漏洞利用/dev/misc-sd设备的可写漏洞。
正常情况下,打开设备后,调用ioctl函数,控制设备驱动程序修改其内部的一个数据结构。
但是我们可以让设备驱动程序写的目标地址,溢出到用户空间的一块地址,可以实现对内核的任意可写。
fd = open("/dev/misc-sd", 0);
ioctl(fd, 0, buff);//buff需要精心构造。
既然可以对任意内核数据可写,这里提出一个root提权的方案。将可写的地址定位到系统调用表内核没有使用的项(如0x10f,0x110)。将其地址
修改为我们自己定义的回调函数void callback();。
准备好后,调用syscall(0x10F)或syscall(0x110)可以调用我们自己的callback回调函数。
在回调函数中,编写提权代码,可以达到提权的目的。
写到这里,我们所关心的华为荣耀3X root后不可写问题还没有解决,哈哈,不要急,听我慢慢道来。
定位逆向出来的root提权方案的syscall回调函数callback。发现这个函数除了提权外,还在内核特定位置,搜索"mmcb"这个字符串,如果找到,将其修改为"AAAA"。这个太像破解/system分区不可写的难题的关键点了。
写程序验证之。yes,难题解决了。
/*
转载请注明出处:http://blog.csdn.net/jinangl_vsnake/article/details/46986081
如有交流,发送至邮箱jinangl@163.com
*/
为了解决这个问题,发现国内另一款知名root软件可以无此副作用(root后重启写入/system的内容)还在。因此逆之,找出如何实现的。
通过逆向,提取方案,分析原理,发现此漏洞利用/dev/misc-sd设备的可写漏洞。
正常情况下,打开设备后,调用ioctl函数,控制设备驱动程序修改其内部的一个数据结构。
但是我们可以让设备驱动程序写的目标地址,溢出到用户空间的一块地址,可以实现对内核的任意可写。
fd = open("/dev/misc-sd", 0);
ioctl(fd, 0, buff);//buff需要精心构造。
既然可以对任意内核数据可写,这里提出一个root提权的方案。将可写的地址定位到系统调用表内核没有使用的项(如0x10f,0x110)。将其地址
修改为我们自己定义的回调函数void callback();。
准备好后,调用syscall(0x10F)或syscall(0x110)可以调用我们自己的callback回调函数。
在回调函数中,编写提权代码,可以达到提权的目的。
写到这里,我们所关心的华为荣耀3X root后不可写问题还没有解决,哈哈,不要急,听我慢慢道来。
定位逆向出来的root提权方案的syscall回调函数callback。发现这个函数除了提权外,还在内核特定位置,搜索"mmcb"这个字符串,如果找到,将其修改为"AAAA"。这个太像破解/system分区不可写的难题的关键点了。
写程序验证之。yes,难题解决了。
相关文章推荐
- oracle统计数量count和distinct组合使用
- WebKit的一些笔记1(基础篇)
- 【玩转cocos2d-x之十二】plist解析工具:Anti_TexturePacker
- arm-elf-gcc汇编代码个人理解
- Activity的四种launchMode
- Linux下tar命令exclude选项排除指定文件或目录
- 【玩转cocos2d-x之十一】定时器schedule
- 【玩转cocos2d-x之十】cocos2d-x坐标系
- [HA]负载均衡:HAPROXY与KEEPALIVED强强联合
- C# 拷贝目录
- 分享一个实用、极速开发的webapp开发工具
- w d625 indows server 服务器搭建AD、Exchange 2010
- scala基础入门
- 判断一个节点是不是另一个的节点的子节点;
- REST 架构该怎么生动地理解?
- 栈 hdu1237 简单计算器
- 【sgu161】(未完成)
- 【玩转cocos2d-x之九】动作类CCAction
- Java懒汉式设计模式与多线程
- MVC与三层模型探讨