1 需求
因为最近使用的虚拟机突然不能用了,被人云注入强制弹窗,如下图:(这一看就是云注入了)
2 大佬的方法
感兴趣的翻到文章末尾。
3 总结大佬方法的核心步骤
(1)获取Application类路径
这是第一步,也是非常关键的一步。
根据大佬的描述,我们可以用两种方法去获取(因为它本身是加密的)
1 通过MT的注入日志log来打印出来。
此方法我没试成功,应该是因为我不会注入日志导致的。所以此方法我不做进一步探讨。
2 通过分析smali代码,找到云注入的代码。然后复制A变量和app_id变量的值。
然后使用大佬的解密工具解密出类名。(此方法可行)
工具可以去MT搜大佬的文章,获取链接。
但是为了方便大家,我把自己保存的备份给你们。
工具备份百度云链接:
https://pan.baidu.com/s/18djI4rW9QvxXXyhIjyYQkw?pwd=r3h6
提取码:r3h6
3 这里再拓展我自己的一个想法。
因为本质上就是获取Application类名。
所以我们可以直接使用最常用的算法助手,分析一下即可。但是此处需要lsp/xposed框架。做逆向的不会这个都没有吧。
然后就可以知道我们后面需要的Application的类名
arm.StubApp了,记住她。
(2)找到云注入启动代码路径
找到云注入(cloudinject)的代码,
这里就放着云注入cloudinject所启动的代码。
(3)修改这个类。
按照大佬的意思,就是改成空壳代码即可。
这里需要用到前面我们苦苦寻找的Application类名
【arm.StubApp】对应的smali代码写法是
【Larm/StubApp】前面加个L,点化成斜杠
修改模板:
.super L路径;
# direct methods
.method public constructor <init>()V
.registers 1
invoke-direct {p0}, L路径;-><init>()V
return-void
.end method
改成:
.class public Lcom/cloudinject/feature/App;
.super Larm/StubApp;
# direct methods
.method public constructor <init>()V
.registers 1
invoke-direct {p0}, Larm/StubApp;-><init>()V
return-void
.end method
如图:
然后保存退出重新签名即可。
因为替换成空壳代码,云注入就彻底没用了。
结束。
—— 分割线 ——
4【最后】扩展:大佬的方法
如图(MT大佬分享的,感兴趣的朋友可以去大佬主页看看他其他文章):