APK查壳特征识别

    很多APK采用各个厂商的加壳工具,使得反编译APK看不到正确的smali代码。为快速了解APK加壳方式并在网络上查找对应的现成脱壳工具进行尝试。同时也可通过快速了解加壳厂商,根据以往该类型加壳原理分析的经验进行调试找到脱壳突破点。下面给出APK加壳特征以识别加壳方式。

        markNameMap.put("libchaosvmp.so", "娜迦");
        markNameMap.put("libddog.so", "娜迦");
        markNameMap.put("libfdog.so", "娜迦");
        markNameMap.put("libedog.so", "娜迦企业版");
        markNameMap.put("libexec.so", "爱加密");
        markNameMap.put("libexecmain.so", "爱加密");
        markNameMap.put("ijiami.dat", "爱加密");
        markNameMap.put("ijiami.ajm", "爱加密企业版");
        markNameMap.put("libsecexe.so", "梆梆免费版");
        markNameMap.put("libsecmain.so", "梆梆免费版");
        markNameMap.put("libSecShell.so", "梆梆免费版");
        markNameMap.put("libDexHelper.so", "梆梆企业版");
        markNameMap.put("libDexHelper-x86.so", "梆梆企业版");
        markNameMap.put("libprotectClass.so", "360");
        markNameMap.put("libjiagu.so", "360");
        markNameMap.put("libjiagu_art.so", "360");
        markNameMap.put("libjiagu_x86.so", "360");
        markNameMap.put("libegis.so", "通付盾");
        markNameMap.put("libNSaferOnly.so", "通付盾");
        markNameMap.put("libnqshield.so", "网秦");
        markNameMap.put("libbaiduprotect.so", "百度");
        markNameMap.put("aliprotect.dat", "阿里聚安全");
        markNameMap.put("libsgmain.so", "阿里聚安全");
        markNameMap.put("libsgsecuritybody.so", "阿里聚安全");
        markNameMap.put("libmobisec.so", "阿里聚安全");
        markNameMap.put("libtup.so", "腾讯");
        markNameMap.put("libexec.so", "腾讯");
        markNameMap.put("libshell.so", "腾讯");
        markNameMap.put("mix.dex", "腾讯");
        markNameMap.put("lib/armeabi/mix.dex", "腾讯");
        markNameMap.put("lib/armeabi/mixz.dex", "腾讯");
        markNameMap.put("libtosprotection.armeabi.so", "腾讯御安全");
        markNameMap.put("libtosprotection.armeabi-v7a.so", "腾讯御安全");
        markNameMap.put("libtosprotection.x86.so", "腾讯御安全");
        markNameMap.put("libnesec.so", "网易易盾");
        markNameMap.put("libAPKProtect.so", "APKProtect");
        markNameMap.put("libkwscmm.so", "几维安全");
        markNameMap.put("libkwscr.so", "几维安全");
        markNameMap.put("libkwslinker.so", "几维安全");
        markNameMap.put("libx3g.so", "顶像科技");
        markNameMap.put("libapssec.so", "盛大");
        markNameMap.put("librsprotect.so", "瑞星");

    只要在APK包中(一般在asserts或者lib目录下)发现这些so,就可以通过上述关系确定加壳种类。

    若有新的加固厂商或者so名称改变等原因使得APK无法查出加固种类,您可以到这些加固的提供商的主页下载的免费的加固工具,自己写程序进行加固,然后进行对比,就知道该类型加固特点。上述列表就可以自己更新下进行特征识别。

    例如发现libjiagu.so,则可以确定该APK通过某数字厂商的加壳工具。则您可以尝试Fdex的脱壳工具,实测中成功脱壳了一些。下面是引用地址:

https://bbs.pediy.com/thread-224105.htm

你可能感兴趣的:(Android逆向)