Android常見App加固廠商脫殼方法的整理

本文轉(zhuǎn)載自:http://www.mottoin.com/89035.html

目錄

  1. 簡述(脫殼前學(xué)習(xí)的知識、殼的歷史俗或、脫殼方法)
  2. 第一代殼
  3. 第二代殼
  4. 第三代殼
  5. 第N代殼

簡述

  1. Apk文件結(jié)構(gòu)
  2. Dex文件結(jié)構(gòu)
  3. 殼史
  4. 殼的識別

Apk文件結(jié)構(gòu)

1

Dex文件結(jié)構(gòu)

2

殼史

第一代殼 Dex加密

  1. Dex字符串加密
  2. 資源加密
  3. 對抗反編譯
  4. 反調(diào)試
  5. 自定義DexClassLoader

第二代殼 Dex抽取與So加固

  1. 對抗第一代殼常見的脫殼法
  2. Dex Method代碼抽取到外部(通常企業(yè)版)
  3. Dex動態(tài)加載
  4. So加密

第三代殼 Dex動態(tài)解密與So混淆

  1. Dex Method代碼動態(tài)解密
  2. So代碼膨脹混淆
  3. 對抗之前出現(xiàn)的所有脫殼法

第四代殼 arm vmp(未來)

  1. vmp

殼的識別

1.用加固廠商特征:

  • 娜迦: libchaosvmp.so , libddog.solibfdog.so
  • 愛加密:libexec.so, libexecmain.so
  • 梆梆: libsecexe.so, libsecmain.so , libDexHelper.so
  • 360:libprotectClass.so, libjiagu.so
  • 通付盾:libegis.so
  • 網(wǎng)秦:libnqshield.so
  • 百度:libbaiduprotect.so

2.基于特征的識別代碼

3

第一代殼

  1. 內(nèi)存Dump法
  2. 文件監(jiān)視法
  3. Hook法
  4. 定制系統(tǒng)
  5. 動態(tài)調(diào)試法

內(nèi)存Dump法

  • 內(nèi)存中尋找dex.035或者dex.036
  • /proc/xxx/maps中查找后末贾,手動Dump
4
5
6
7

文件監(jiān)視法

8
9
10

Hook法

11
12

定制系統(tǒng)

  • 修改安卓源碼并刷機
13
14

動態(tài)調(diào)試法

  • IDA Pro
15
16
17
  • gdb gcore法

<pre class="" style="box-sizing: border-box; overflow: auto; font-family: monospace, monospace; font-size: 16px; color: rgb(68, 68, 68); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-style: initial; text-decoration-color: initial;">.gdbserver :1234 –attach pid
.gdb
(gdb) target remote :1234
(gdb) gcore</pre>

coredump文件中搜索“dex.035”

18

第二代殼

  1. 內(nèi)存重組法
  2. Hook法
  3. 動態(tài)調(diào)試
  4. 定制系統(tǒng)
  5. 靜態(tài)脫殼機

內(nèi)存重組法

Dex篇

ZjDroid http://bbs.pediy.com/showthread.php?t=190494

對付一切內(nèi)存中完整的dex荠呐,包括殼與動態(tài)加載的jar

19
20

so篇

elfrebuild

21
22

構(gòu)造soinfo,然后對其進行重建

23
24

Hook法

針對無代碼抽取且Hook dvmDexFileOpenPartial失敗

Hook dexFileParse

http://androidxref.com/4.4_r1/xref/dalvik/vm/DvmDex.cpp

25

https://github.com/WooyunDota/DumpDex

26

針對無代碼抽取且Hook dexFileParse失敗

Hook memcmp

http://androidxref.com/4.4_r1/xref/dalvik/vm/DvmDex.cpp

27
28

定制系統(tǒng)

修改安卓源碼并刷機-針對無抽取代碼

https://github.com/bunnyblue/DexExtractor

29

Hook dexfileParse

30
31

DexHunter-最強大的二代殼脫殼工具

https://github.com/zyq8709/DexHunter

DexHunter的工作流程:

32

DexHunter的工作原理:

33

繞過三進程反調(diào)試

http://bbs.pediy.com/showthread.php?p=1439627

34
35

修改系統(tǒng)源碼后:

36

http://www.cnblogs.com/lvcha/p/3903669.html

37

<pre class="" style="box-sizing: border-box; overflow: auto; font-family: monospace, monospace; font-size: 16px; color: rgb(68, 68, 68); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-style: initial; text-decoration-color: initial;">ls /proc/345/task</pre>

38

<pre class="" style="box-sizing: border-box; overflow: auto; font-family: monospace, monospace; font-size: 16px; color: rgb(68, 68, 68); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-style: initial; text-decoration-color: initial;">./gdbserver :1234 --attach346
...
(gdb) gcore</pre>

gcore防Dump解決方案:

http://bbs.pediy.com/showthread.php?t=198995

斷點mmap調(diào)試裤唠,針對Hook dexFileParse無效

原理: dexopt優(yōu)化時挤牛, dvmContinueOptimization()->mmap()

39

靜態(tài)脫殼機

分析殼so邏輯并還原加密算法

http://www.cnblogs.com/2014asm/p/4924342.html

40

自定義linker脫so殼

https://github.com/devilogic/udog

<pre class="" style="box-sizing: border-box; overflow: auto; font-family: monospace, monospace; font-size: 16px; color: rgb(68, 68, 68); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-style: initial; text-decoration-color: initial;">main() -> dump_file()</pre>

41

第三代殼

  1. dex2oat法
  2. 定制系統(tǒng)

dex2oat法

ART模式下,dex2oat生成oat時巧骚,內(nèi)存中的DEX是完整的

http://bbs.pediy.com/showthread.php?t=210532

43

定制系統(tǒng)

Hook Dalvik_dalvik_system_DexFile_defineClassNative

枚舉所有DexClassDef赊颠,對所有的class,調(diào)用dvmDefineClass進行強制加載

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末劈彪,一起剝皮案震驚了整個濱河市竣蹦,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌沧奴,老刑警劉巖痘括,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異滔吠,居然都是意外死亡纲菌,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進店門疮绷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來翰舌,“玉大人,你說我怎么就攤上這事冬骚∫渭” “怎么了?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵只冻,是天一觀的道長庇麦。 經(jīng)常有香客問我,道長喜德,這世上最難降的妖魔是什么山橄? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮舍悯,結(jié)果婚禮上航棱,老公的妹妹穿的比我還像新娘。我一直安慰自己贱呐,他們只是感情好丧诺,可當我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著奄薇,像睡著了一般驳阎。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上馁蒂,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天呵晚,我揣著相機與錄音,去河邊找鬼沫屡。 笑死饵隙,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的沮脖。 我是一名探鬼主播金矛,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼芯急,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了驶俊?” 一聲冷哼從身側(cè)響起娶耍,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎饼酿,沒想到半個月后榕酒,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡故俐,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年想鹰,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片药版。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡辑舷,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出刚陡,到底是詐尸還是另有隱情惩妇,我是刑警寧澤,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布筐乳,位于F島的核電站歌殃,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏蝙云。R本人自食惡果不足惜氓皱,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望勃刨。 院中可真熱鬧波材,春花似錦、人聲如沸身隐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽贾铝。三九已至隙轻,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間垢揩,已是汗流浹背玖绿。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留叁巨,地道東北人斑匪。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像锋勺,于是被迫代替她去往敵國和親蚀瘸。 傳聞我的和親對象是個殘疾皇子狡蝶,可洞房花燭夜當晚...
    茶點故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內(nèi)容