閑聊阿里加固(一)

0x00 閑扯

1.為什么要寫這些?

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

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

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

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

因為我手上的加固樣本有限,不是每個版本的加固樣本都有,所以綜合考慮了一下,選擇阿里的樣本,能比較容易形成一種循序漸進學(xué)習(xí)的感覺,樣本全部來自歷年阿里CTF和阿里移動安全挑戰(zhàn)賽

4.適合對象?

最適合跟著其它表哥文章脫過殼,卻不知道為什么要那樣脫殼的同學(xué),因為接下來這幾篇文章講的就是如何通過一步步的分析,找到脫殼點

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

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

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

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

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

3.mobisec.so

延伸閱讀

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