吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

搜索
查看: 32831|回复: 53

[Android 分享] 使用xposed来hook使用360加固的应用

  [复制链接]
smartdone 发表于 2016-9-2 12:03
0x00 原理
使用360加固之后的应用的classloader会被换成360的,所以只需要在hook的时候把classloader换成360的就可以了。
0x01 反编译
被360加固的应用是可以反编译的,反编译之后dex里面只有很少的几个类,比较重要的就是StubAppxxxx这个类(xxxx代表一个数字),可以在这个类里面的getNewAppInstance里面去获取context参数,然后就可以通过context获得到360的类加载器,之后只需要用这个类加载器来hook就可以成功的hook到360加固的app。
1.png
0x03 示例代码
import android.content.Context;
import android.util.Log;

import de.robv.android.xposed.IXposedHookLoadPackage;
import de.robv.android.xposed.XC_MethodHook;
import de.robv.android.xposed.XposedBridge;
import de.robv.android.xposed.XposedHelpers;
import de.robv.android.xposed.callbacks.XC_LoadPackage;

/**
* Created by done on 2016/9/1.
*/
public class Main implements IXposedHookLoadPackage{
    private StringTAG = "Hook";

    @Override
    public void handleLoadPackage(XC_LoadPackage.LoadPackageParamloadPackageParam) throws Throwable {

        if (loadPackageParam.packageName.equals("com.mdcn.mdonline")) {
            XposedBridge.log("开始hook....");
            //hook加固后的包,首先hook getNewAppInstance这个方法来获取context对象
            
XposedHelpers.findAndHookMethod("com.qihoo.util.StubApp579459766", loadPackageParam.classLoader,
                    "getNewAppInstance", Context.class, new XC_MethodHook() {
                        @Override
                        protected void afterHookedMethod(MethodHookParam param) throws Throwable {
                            super.afterHookedMethod(param);
                            //获取到360的Context对象,通过这个对象来获取classloader
                           
Context context = (Context) param.args[0];
                            //获取360的classloader,之后hook加固后的就使用这个classloader
                           
ClassLoader classLoader =context.getClassLoader();
                            //下面就是强classloader修改成360的classloader就可以成功的hook了
                           
XposedHelpers.findAndHookMethod("xxx.xxx.xxx.xxx", classLoader, "xxx", String.class, String.class, new XC_MethodHook() {
                                @Override
                                protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
                                    super.beforeHookedMethod(param);
                                    Log.i(TAG, "密钥: " + (String) param.args[0]);
                                    Log.i(TAG, "内容: " + (String) param.args[1]);
                                   param.setResult((String) param.args[1]);
                                }
                            });

                           
        }

    }
}

免费评分

参与人数 6吾爱币 +3 热心值 +6 收起 理由
A175 + 1 + 1 热心回复!
wsgh + 1 + 1 用心讨论,共获提升!
ABCD + 1 + 1 我很赞同!
wangxd + 1 感谢楼主,已hook成功。
Y4Ng + 1 感谢楼主,已hook成功。
bitssly + 1 热心回复!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

愛的後防補給 发表于 2016-9-3 11:00
不懂,好像很牛逼的样子
龙飞雪 发表于 2016-12-11 22:30
litianping 发表于 2016-9-21 14:30
加壳了的app里面的方法都看不到了,hook那个方法都不知道。。。。。

是的,如果知道了方法,就不用hook了,哈哈
chenmintian 发表于 2016-9-2 12:30
 楼主| smartdone 发表于 2016-9-2 13:04
chenmintian 发表于 2016-9-2 12:30
...,哪里分享的啊? 有兴趣

在看雪学院里面看到了,然后自己修改了一下
fly农夫三拳 发表于 2016-9-2 15:47
支持一下
功夫孬 发表于 2016-9-2 20:13
值得收藏!谢谢楼主
970883246 发表于 2016-9-3 10:51
很实用谢谢楼主
lpdswing 发表于 2016-9-3 10:58
最好来个实例教程
统列 发表于 2016-9-3 11:31
突然发现如果按照这个思路继续下去。
淡然出尘 发表于 2016-9-3 11:33
Mark一下
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2020-7-15 20:32

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表