這篇文章將為大家詳細講解有關(guān)常見android app加固廠商脫殼方法有哪些,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
成都創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都做網(wǎng)站、網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的未央網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
簡述Apk文件結(jié)構(gòu)Dex文件結(jié)構(gòu)殼史殼的識別Apk文件結(jié)構(gòu)
Dex文件結(jié)構(gòu)
殼史
第一代殼 Dex加密
Dex字符串加密資源加密對抗反編譯反調(diào)試自定義DexClassLoader
第二代殼 Dex抽取與So加固
對抗第一代殼常見的脫殼法Dex Method代碼抽取到外部(通常企業(yè)版)Dex動態(tài)加載So加密
第三代殼 Dex動態(tài)解密與So混淆
Dex Method代碼動態(tài)解密So代碼膨脹混淆對抗之前出現(xiàn)的所有脫殼法
第四代殼 arm vmp(未來)
vmp殼的識別
1.用加固廠商特征:
娜迦: libchaosvmp.so , libddog.solibfdog.so愛加密:libexec.so, libexecmain.so梆梆: libsecexe.so, libsecmain.so , libDexHelper.so360:libprotectClass.so, libjiagu.so通付盾:libegis.so網(wǎng)秦:libnqshield.so百度:libbaiduprotect.so
2.基于特征的識別代碼
第一代殼內(nèi)存Dump法文件監(jiān)視法Hook法定制系統(tǒng)動態(tài)調(diào)試法內(nèi)存Dump法內(nèi)存中尋找dex.035或者dex.036/proc/xxx/maps中查找后,手動Dump
android-unpacker https://github.com/strazzere/android-unpacker
drizzleDumper https://github.com/DrizzleRisk/drizzleDumper升級版的android-unpacker,read和lseek64代替pread,匹配dex代替匹配odex
IDA Pro + dumpDEXdumpDex https://github.com/CvvT/dumpDex
文件監(jiān)視法Dex優(yōu)化生成odexinotifywait-for-Android https://github.com/mkttanabe/inotifywait-for-Android監(jiān)視文件變化
notifywait-for-Android https://github.com/mkttanabe/inotifywait-for-Android監(jiān)視DexOpt輸出
Hook法Hook dvmDexFileOpenPartialhttp://androidxref.com/4.4_r1/xref/dalvik/vm/DvmDex.cpp
定制系統(tǒng)修改安卓源碼并刷機
DumpApk https://github.com/CvvT/DumpApk只針對部分殼
動態(tài)調(diào)試法IDA Pro
gdb gcore法
.gdbserver :1234 –attach pid .gdb (gdb) target remote :1234 (gdb) gcore
coredump文件中搜索“dex.035”
第二代殼內(nèi)存重組法Hook法動態(tài)調(diào)試定制系統(tǒng)靜態(tài)脫殼機內(nèi)存重組法
Dex篇
ZjDroid http://bbs.pediy.com/showthread.php?t=190494
對付一切內(nèi)存中完整的dex,包括殼與動態(tài)加載的jar
so篇
elfrebuild
構(gòu)造soinfo,然后對其進行重建
Hook法
針對無代碼抽取且Hook dvmDexFileOpenPartial失敗
Hook dexFileParse
http://androidxref.com/4.4_r1/xref/dalvik/vm/DvmDex.cpp
https://github.com/WooyunDota/DumpDex
針對無代碼抽取且Hook dexFileParse失敗
Hook memcmp
http://androidxref.com/4.4_r1/xref/dalvik/vm/DvmDex.cpp
定制系統(tǒng)
修改安卓源碼并刷機-針對無抽取代碼
https://github.com/bunnyblue/DexExtractor
Hook dexfileParse
DexHunter-最強大的二代殼脫殼工具
https://github.com/zyq8709/DexHunter
DexHunter的工作流程:
DexHunter的工作原理:
繞過三進程反調(diào)試
http://bbs.pediy.com/showthread.php?p=1439627
修改系統(tǒng)源碼后:
http://www.cnblogs.com/lvcha/p/3903669.html
ls /proc/345/task
./gdbserver :1234 --attach446 ... (gdb) gcore
gcore防Dump解決方案:
http://bbs.pediy.com/showthread.php?t=198995
斷點mmap調(diào)試,針對Hook dexFileParse無效
原理: dexopt優(yōu)化時, dvmContinueOptimization()->mmap()
靜態(tài)脫殼機
分析殼so邏輯并還原加密算法
http://www.cnblogs.com/2014asm/p/4924342.html
自定義linker脫so殼
https://github.com/devilogic/udog
main() -> dump_file()
第三代殼dex2oat法定制系統(tǒng)dex2oat法
ART模式下,dex2oat生成oat時,內(nèi)存中的DEX是完整的
http://bbs.pediy.com/showthread.php?t=210532
定制系統(tǒng)
Hook Dalvik_dalvik_system_DexFile_defineClassNative
枚舉所有DexClassDef,對所有的class,調(diào)用dvmDefineClass進行強制加載
第N代殼so + vmp動態(tài)調(diào)試 + 人肉還原
關(guān)于“常見android app加固廠商脫殼方法有哪些”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。