UnpackShellScripts
总结大佬们的脱壳脚本
frida_dump_dex
- 基于内存关键字dex035(64 65 78 0a 30 33 35 00)的搜索
dex_dump
frida-unpack
Frida-Apk-Unpack
- Hook OpenCommon 和 OpenMemory
dumpDex
- 需要配合xposed使用,xp框架在这里仅仅是起到一个加载so的目的(也可以不用xposed,替代的方法很多),本质是使用的ele7enxxh的inlinehook框架,判断安卓版本后hook指定的脱壳点并dump出dex
drizzleDumper
- 通过/proc/%s/cmdline遍历去找到指定PackageName的pid,fork出子进程attach到目标pid,然后就是和一套内存搜索组合拳打进去,再dump dex
BlackDex
- 支持5.0以上,指令回填,区分32、64应用,基于虚拟机实现
FART
Youpk
脱壳点:
Android 9.0 (OpenCommon)
32 _ZN3art16ArtDexFileLoader10OpenCommonEPKhjS2_jRKNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEjPKNS_10OatDexFileEbbPS9_NS3_10unique_ptrINS_16DexFileContainerENS3_14default_deleteISH_EEEEPNS_13DexFileLoader12VerifyResultE
64 _ZN3art13DexFileLoader10OpenCommonEPKhmS2_mRKNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEjPKNS_10OatDexFileEbbPS9_NS3_10unique_ptrINS_16DexFileContainerENS3_14default_deleteISH_EEEEPNS0_12VerifyResultE
Android 8.0 (OpenCommon)
32 _ZN3art7DexFile10OpenCommonEPKhjRKNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEjPKNS_10OatDexFileEbbPS9_PNS0_12VerifyResultE
64 _ZN3art7DexFile10OpenCommonEPKhmRKNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEjPKNS_10OatDexFileEbbPS9_PNS0_12VerifyResultE
Android 7.0 ~ 5.0 (OpenMemory)
32 ZN3art7DexFile10OpenMemoryEPKhjRKNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEjPNS_6MemMapEPKNS_10OatDexFileEPS9
64 ZN3art7DexFile10OpenMemoryEPKhmRKNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEjPNS_6MemMapEPKNS_10OatDexFileEPS9
Android < 5.0 (dvmDexFileOpenPartial 和 dexFileParse)
dvmDexFileOpenPartial(addr, len, &pDvmDex)
dexFileParse(const u1* data, size_t length, int flags)