閑聊阿里加固(一)
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
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26