乐趣区

关于人工智能:Android病毒分析实战二

明天星友求助一个相似杀猪盘的样本。该样本有以下几个点须要攻克:

1、AndroidManifest.xml 通过解决:

2、整个样本的字符串全副通过加密,解密办法名通过强混同:

3、资源文件也通过了混同:

4、样本伪加密:

5、样本无奈装置(签名问题):

接下来咱们来解决一下 2、5 两个问题。

样本无奈装置

咱们看样本装置报错,提醒签名问题,咱们间接上 Xposed 模块: 外围破解
外围破解的次要性能:
1、容许降级装置利用
2、容许装置签名谬误的 apk
3、容许在应用不同签名的状况下笼罩装置
毛病:
以后版本只反对安卓 10-12

强混同办法 hook、字符串解密

接下来咱们 hook 一下这个加密办法,简略的 hook 咱们间接应用 objection 即可:

hook 监测该类,能够看到只有这一个办法:

objection -g com.biaoqyun.tongchengaglao explore
android hooking watch class b6p.alur0e.fmjoi

咱们间接复制,hook 该办法,报错,找不到这个办法:

这样看间接 hook 这个办法显然是有问题,因为其中蕴含了各种字符,frida 在解析这个办法时因为乱码的起因,无奈失常解析道这个类,这样看来咱们只能想其余方法了。

曲线救国,能够试试 hook 它的下层调用 a.c,打印对应的参数和返回值来看,其中的参数即是解密后的字符串。

失去后果如下:

android hooking watch class_method com.g
aoyuan.mianshu.k.c.a --dump-args --dump-return

从上图咱们能够看到有 RSA 密钥,以及返回的一些 URL。

这样的毛病是只能晓得这一块的字符串解密内容,其余的还是无奈定位,这样看还是须要 hook 这个混同的办法。

咱们的大佬提供了解决办法,能够 hook 混同办法,展现一下 hook 到的后果:

咱们也能够依据打印进去的字符串在 jadx 中搜寻对应的字符串而后持续剖析代码

hook 代码如下:

Java.perform(function() {
 
        var targetClass = "b6p.alur0e.fmjoi";
 
        var hookCls = Java.use(targetClass);
        var methods = hookCls.class.getDeclaredMethods();
 

        var methodname = encodeURIComponent(methods[0].toString().replace(/^.*?\.([^\s\.\(\)]+)\(.*?$/, "$1"));// 对字符串进行 js 本人编码

 
        hookCls[decodeURIComponent(methodname)]// 应用的时候再去解码
            .implementation = function (x) {console.log("参数:", x);
                var result = this[decodeURIComponent(methodname)](x);
                console.log("返回值:",result);
                return result;
            }
    }
)

举荐浏览:

https://mp.weixin.qq.com/s/dV2JzXfgjDdCmWRmE0glDA

https://mp.weixin.qq.com/s/an83QZOWXHqll3SGPYTL5g

退出移动版