當前位置:
首頁 >
360脱壳-native函数还原笔记-2017-06-25
發布時間:2025/3/15
47
豆豆
生活随笔
收集整理的這篇文章主要介紹了
360脱壳-native函数还原笔记-2017-06-25
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
| 本帖最后由 歐陽鋒鋒 于 2017-6-25 12:37 編輯 ? ?? ?接觸andorid逆向脫殼一段時間了,剛剛感覺開始入門,最開始時的過反調試,花費了大量的時間,但時間長了,匯編指令慢慢熟悉,學會了一些調 試技巧,反調試方法知道了,就那么些反調試的方法,過反調就比較順利了,所以剛開始學逆向的同學,應該也會比較頭疼的,記錄下我的逆向學習之 旅,增強下記憶,記錄分享也是自我提升的過程吧。輕松過掉反調試后,就能有更多的時間去研究殼本身流程和加解密操作。先前的dex加殼,不管是 內存加載(內存dump),還是類抽取(dexHunter),從內存中dump出來后,還是比較容易重打包運行的,自從出現能解釋執行smali指令的殼出現后 ,小伙伴都能把dex dump出來可是onCreate函數是native的,無法還原指令,dex的關鍵代碼可以分析了,但是無法進行重打包運行,這tn就蛋疼了, 沒有卵用,這些天也是一有空就看,還有點成果,手里的兩個apk,只是把啟動相關Activity 的onCreate進行了還原,apk能運行起來,記錄分享下我 的思路。 其實也沒思路了,就是跟蹤匯編,看匯編指令,函數比較復雜,而且加了混淆,剛開始頭都大了。 ? ?? ?1.apk 過反調試,360的反調試方法還是那么些,沒有更新,可以看我前一篇文章。 ? ?? ?2.找到正確的地方下斷點,因為dump出dex的onCreate函數是native的,所以肯定是需要注冊的,在so中找到給其賦值RegisterNative函數,相應的參 數就是對應的jni函數,IDA動態調試起來,下斷點,迷糊的小伙伴可以翻看我前一篇文章,最后有介紹。 ? ?? ?3.跟蹤jni函數,關鍵在sub_A990函數,而且函數挺長的,需要點耐心閱讀 ? ?? ?? ?? ? ?? ?4.根據方法的索引獲取方法的結構體,大致結構體如下: ? ?? ?? ?? ?Struct NativeMethod{ ? ?? ?? ?? ?? ?? ?int classIdx; ? ?? ?? ?? ?? ?? ?int dexMethodIdx; ? ?? ?? ?? ?? ?? ?int dexCodeOff; ? ?? ?? ?? ?? ?? ?int** pDexAddr;? ? ?? ?? ???}*pNativeMethod; ? ?? ?? ?? ? ?? ?5.根據結構體獲取方法的相關信息 ? ?? ?? ?? ? ?? ?6.根據方法的shorty,構建參數 ? ?? ???? ? ?? ?7.解析指令 ? ?? ???? ? ?? ?8.解密指令,獲取opCode ? ?? ???? ? ?? ?9.根據opcode進行相應的case處理,比如說一條invoke指令,就會通過,FindClass,GetMethod,CallXXXMethodA方法進行翻譯?? ? ?? ?? ??? ? ?? ?10.大體的流程就是這樣的,每個case的流程,就不寫了,因為沒看,不會,只是看了用到的部分,以下是某個apk 簡單onCreate的還原 ? ?? ?? 二、總結 ? ?? ? 360的opcode對應表不是固定的,分析了兩個apk,表的對應關系是不一樣的,應該是在加固過程中,動態生成的,指令加密方式也是 不一樣的,盡管只是簡單的異或,所以就沒辦法進行批處理了,只能手動分析,分析出這個apk對應的opcode表,再進行批處理操作了,反 正脫殼是越來越麻煩了,需要耐心去分析,分析用到的apk就不往論壇傳了,放出去不太好,有需要的可以私我。
原文地址:?http://www.52pojie.cn/thread-619391-1-1.html |
總結
以上是生活随笔為你收集整理的360脱壳-native函数还原笔记-2017-06-25的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 360加固逆向脱壳之过反调试
- 下一篇: 2017年Q1安卓ROOT类恶意病毒发展