安卓逆向:简单快速去除云注入方法详解
本文档详细介绍了如何解决安卓虚拟机遭遇云注入的问题,包括分析云注入的原理,提供两种不同的解决方案:一种是通过修改AndroidManifest.xml文件,另一种是修改smali代码。同时,提供了寻找原作者Application类名的多种方法,并给出了具体步骤和工具链接。最后,讨论了MT论坛某大佬的高级解决办法,涉及修改smali代码以创建空壳类。
目录
- 相关工具链接
- 需求分析
- 原理分析
- 解决办法
- MT论坛某大佬的方法
- 寻找作者的Application类名(路径)
- 使用MT-DL方法找到云注入启动代码路径并修改
- 修改这个类
- 扩展:大佬的方法
1. 相关工具链接
本文档中使用到的工具备份链接如下:
- 带虚拟机(大文件):链接: [百度云链接] 提取码: 4848
- 不带虚拟机(小文件):链接: [百度云链接] 提取码: 4848
2. 需求分析
最近使用的虚拟机突然不能用了,被人云注入强制弹窗,如下图所示:(这一看就是云注入了)
3. 原理分析
- 安卓中的每一个应用程序真正的入口点是Application类实例。
- 一个应用最多只能有一个Application类实例,开发者通过继承Application类来实现。
- 如果用户继承Application类并使用,必须要在AndroidManifest文件中的<application标签内的android:name属性写上这个自定义类的包名(路径)。
4. 解决办法
4.1 我的解决方法
- 把cloudinject目录删了(其实删不删都无所谓)。
- 寻找原来作者的Application类名。
- 在AndroidManifest文件的<application标签的android:name属性改回作者原来的。
- 最后自己保存回编译重新签名安装(使用MT管理器都没啥问题)。
4.2 MT论坛某大佬的解决办法
- 不要删cloudinject目录(其实反倒是需要修改)。
- 寻找原来作者的Application类名。
- 修改其中的继承自原作者Application类的子类改为空壳代码。
5. 寻找作者的Application类名(路径)
5.1 通过解密的方式获取
- 通过分析smali代码,找到云注入的代码,然后复制A变量和app_id变量的值。
- 使用大佬的解密工具解密出类名(此方法可行)。
5.2 通过MT的注入日志log来打印出来
此方法感觉不简单,感兴趣的请自行尝试,此处我不做进一步探讨。
5.3 使用逆向中最常用的【算法助手】
使用其中的【Application监听】分析一下即可看到,但是此处需要lsp/xposed框架。
6. 使用MT-DL方法找到云注入启动代码路径并修改
找到云注入(cloudinject)的代码,这里就放着云注入cloudinject所启动的代码。
7. 修改这个类
按照大佬的意思,就是改成空壳代码即可。这里需要用到前面我们苦苦寻找的Application类名。
8. 扩展:大佬的方法
如图(MT大佬分享的,感兴趣的朋友可以去大佬主页看看他其他文章):
本文档仅供学习交流使用,切勿用于非法用途。