閑聊阿里加固(一)

0x00 閑扯

1.為什么要寫這些?

折騰了一段時(shí)間的Android加固,看了很多大牛的文章,收獲還是蠻大的,不過好像大部分的文章都是直接寫在哪里下斷點(diǎn)如何修復(fù)之類的,寫出如何找到這個(gè)脫殼點(diǎn)的文章還是比較少,所以我準(zhǔn)備整理一下這部分的知識(shí),講講如何找到脫殼點(diǎn),希望能和大家多交流

2.需要什么樣的基礎(chǔ)?

用過JEB,IDA Pro,如果有跟著其它表哥自己脫過殼的那就更好了:),另外,既然都開始玩加固了,那么解壓apk后的工程目錄,smali語法等這種基礎(chǔ)的東西就不再提了

3.為什么選擇阿里加固?

因?yàn)槲沂稚系募庸虡颖居邢?,不是每個(gè)版本的加固樣本都有,所以綜合考慮了一下,選擇阿里的樣本,能比較容易形成一種循序漸進(jìn)學(xué)習(xí)的感覺,樣本全部來自歷年阿里CTF和阿里移動(dòng)安全挑戰(zhàn)賽

4.適合對(duì)象?

最適合跟著其它表哥文章脫過殼,卻不知道為什么要那樣脫殼的同學(xué),因?yàn)榻酉聛磉@幾篇文章講的就是如何通過一步步的分析,找到脫殼點(diǎn)

0x01 樣本初分析---classes.dex

這個(gè)樣本是阿里14年出的,名字是jscrack.apk,我們來載入JEB了解大概信息

首先我們來看箭頭指向的地方:

1.fak.jar:從名字來看,這是一個(gè)jar文件,但是JEB識(shí)別出來是一個(gè)dex,這個(gè)信息提供的很關(guān)鍵,我們可以猜想,阿里加固的方法會(huì)不會(huì)將源dex文件隱藏在這個(gè)fak.jar里面?

2.StupApplication:可以看到入口變成了StupApplication,有過Android開發(fā)經(jīng)驗(yàn)的同學(xué)們都知道,一般情況下,我們?cè)陂_發(fā)APP的時(shí)候,如果有全局變量,數(shù)據(jù)初始化之類的操作,會(huì)寫一個(gè)StartApplication類繼承Application類,那么顯然這里是阿里加固自己添加的一個(gè)入口,用來執(zhí)行一些初始化的操作,比如解密dex,反調(diào)試,檢測(cè)模擬器等等之類的,當(dāng)然這只是我們的猜測(cè),不一定正確

3.mobisec.so

網(wǎng)友評(píng)論