admin管理员组

文章数量:1603082

标 题: 【原创】360一键root工具的自保护机制和彻底清除方法
作 者: 火翼[CCG]
时 间: 2014-06-14,09:48:34
链 接: http://bbs.pediy/showthread.php?t=189060

360一键root工具的自保护机制和彻底清除方法
最近在一台手机上使用360一键root工具获取root权限后总是觉得360的权限管理和su不放心,想手工换成之前习惯的supersu, 更换中发现手工删除360的su后会被自动恢复,即使用360一键root工具的卸载只会卸载权限管理的app,而不会删除system/bin/su和/system/etc/install-recovery.sh文件,daemon进程也会一直随系统启动自动运行,为了干净的卸载掉360的root工具,就详细分析了一下360的su偷偷多做了些什么事情。
1、360的特有功能
不使用导入函数,直接静态链接了bionic的libc代码

  Su程序中需要使用libc中函数的地方,都会静态链接libc的代码,而不是使用符号导入,会给逆向带来一点点障碍。

图1 静态链接的系统函数

修改daemon进程显示的名称为permmgrd
Su程序开始执行后,会对命令行参数进行判断,如果是作为daemon模式运行,就会对进程名进行修改。

图2 修改进程名为permmgrd

修改文件属性为immutable
  360会把自身文件设置为immutable属性,必须去掉这个属性才可以进行删除。

图3 设置immutable属性

强制使用daemon模式,注册inotify监控su文件防修改
  即使在低于4.3版本的系统上,360的root工具会使用daemon模式运行,这样会保证后台始终有一个su的进程在执行,360在这个daemon进程内不仅包含正常的daemon功能,还包含了对root工具自身的保护。另外,360还起动了一个线程处理local socket传过来的命令控制自保护功能。

图4 启动自保护线程

图5 注册inotify监控/system/bin/su


图 6 检测到修改操作后恢复原始su

图7 控制自保护功能的后门线程

干掉所有其他root工具的su和后门文件
当自保护的su恢复功能被触发后,su程序会尝试清楚所有其他root工具的bin和后门。

图8 其他公司root工具文件列表

图9 删除其他公司root工具相关文件

直接拒绝其他root工具的apk请求root权限
对于其他公司root管理工具的root权限请求,su中会直接拒绝

图10 其他公司root管理工具app名称列表

图11拒绝其他公司root管理工具请求root权限

2、如何彻底清除安装的360root工具
看了上面的分析,可以知道要删除360的su文件,需要停止360的自保护功能,方案有很多,简单说几个
1、  获得root权限后结束360的daemon进程,然后清除文件。(注意杀死进程后就无法再请求root权限了,但杀死前申请的还可以使用)。
2、  使用360的后门指令关闭自保护功能,然后清除文件。
3、  360自监控了/system/bin/su,所以修改/system/etc/install-recovery.sh, 然后重启设备,360的daemon进程就不会自动运行了,但要删除文件还需要有root权限,可以在重启前安装其他产品的su到系统内并设置好属性和daemon启动相关文件(注意不要触发360的恢复功能)。
实际操作时,我使用了方案2进行清除,bat文件使用到了adb,chattr和一个自己编写的利用360su后门停止360su自保护功能的kill360su,


图12 清除用的bat文件内容

360的su
su_360.zip.
卸载工具
kill.zip.

本文标签: 一键彻底清除机制工具方法