遇到一个出千APP,360加固,带环境检测,伪装成电话APP,分析一下
脱壳
先查壳,360加固
先安装到模拟器,这里我用的是雷电9,其他的不一定行,反正vmos是会报错的,root真机里xposed环境用了太多模块,内存抽个dex一抽抽几百个,能不用就不用
打开会带一个环境检测,然后应用自动退出,已经试过算法助手的防闪退、阻止退出无效
然而在自动退出之前,会有2-3秒的时间可供操作,可以尝试脱壳(当然blackdex已经试过了,不行,毕竟很久没更新了,有点跟不上现在的加固)
试了一下没检测frida,用frida-dexdump来脱
脱下来的dex用MT去修复一下,连同apk一起加载到jadx中,大致如下
绕过检测
看到代码后就去定位检测代码,能看到主要就是这个showVirtualRunningMsgFinish
方法搞得鬼
确实是关闭了应用,hook这个类让他不执行就可以绕过这里的检测了
hook的时候要注意,这是加固的应用,需要去找到它的dexloader才行
Java.perform(function () {
var application = Java.use('android.app.Application');
application.attach.overload('android.content.Context').implementation = function(context){
this.attach(context);
var classloader = context.getClassLoader();
Java.classFactory.loader = classloader;
let DialActivity = Java.classFactory.use("com.activity.DialActivity.DialActivity");
DialActivity["showVirtualRunningMsgFinish"].implementation = function (context, str) {
console.log('showVirtualRunningMsgFinish is called' + ', ' + 'context: ' + context + ', ' + 'str: ' + str);
// let ret = this.showVirtualRunningMsgFinish(context, str);
};
}
});
此时已经绕过了检测
分析Activity
从AndroidManifest.xml
中能看到注册了很多Activity,看着这些Activity,能猜到它还有很多其他功能,现在主要关注这些Activity是如何打开
由于入口类是com.activity.DialActivity.DialActivity
,能在这里找到一个方法,属于是一眼顶针
对着这些代码敲,然后拨号,就能进入这些隐藏的Activity了
后话
只能说,打麻将需谨慎,尤其是沾了点钱的
后面如果要继续分析的话,走测试流程比走代码分析流程要方便很多,不然你得手搓协议。。。还有一大堆编码、加密要搞,我就不弄了,一开始还以为是偷拍的呢。。没意思
标签:分析,Java,某出,DialActivity,APP,检测,context,Activity From: https://www.cnblogs.com/WXjzc/p/17793380.html