360加固一键脱壳工具2020_Android逆向之路---脱壳360加固原理解析

需要的环境

  • 无,看文章就可以了解大致了

(当然你要是想编译下dumpDex项目,需要如下工具) Android Studio sdk ndk

入口

所有的程序执行的时候都是有个入口的,dumpDex工程也不例外。 由于是个xposed插件,所以我们先看com.wrbug.dumpdex.XposedInit类。

public class XposedInit implements IXposedHookLoadPackage {

    //--------略---------

    @Override
    public void handleLoadPackage(final XC_LoadPackage.LoadPackageParam lpparam) {
        PackerInfo.Type type = PackerInfo.find(lpparam);
        if (type == null) {
            return;
        }
        final String packageName = lpparam.packageName;
        //这里主要是各个app只管解析各个app自己的进程的程序
        if (lpparam.packageName.equals(packageName)) {
            //首先在当前app的指定目录,创建好目录,以便于一会儿脱壳存放dex文件
            String path = "/data/data/" + packageName + "/dump";
            File parent = new File(path);
            if (!parent.exists() || !parent.isDirectory()) {
                parent.mkdirs();
            }
            log("sdk version:" + Build.VERSION.SDK_INT);

            if (DeviceUtils.isOreo()) {
                //api为27或27版本的执行下面一行,进行脱壳
                OreoDump.init(lpparam);
            } else {
                //低版本api执行下面一行进行脱壳
                LowSdkDump.init(lpparam,type);
            }

        }
    }
}

已经加好注释,值得注意的就是,此处程序有分叉了,分别是 OreoDump.init()和LowSdkDump.init() 我们先看OreoDump.init方法

public class OreoDump {

    /

你可能感兴趣的:(360加固一键脱壳工具2020,android,二维码解析原理)