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