閑聊阿里加固(一)

0x00 閑扯

1.為什么要寫(xiě)這些?

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

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

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

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

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

4.適合對(duì)象?

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

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

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

首先我們來(lái)看箭頭指向的地方:

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

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

3.mobisec.so

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開(kāi)發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式