天天看點

安卓逆向4-frida開發,hook,java層

####

安卓逆向4-frida開發,hook,java層

加強後的apk的so檔案是有特征的,

那可能會從360應用市場下載下傳下來的apk是使用的騰訊的加強方案,這是怎麼回事?

可能是應用市場為了豐富自己的apk的生态,然後掃描别的應用市場,然後把自己沒有的包,拿過來,

可以多個應用市場都下載下傳一下apk,有的apk在别的應用市場是沒有加強過的,這樣就友善了,

###

 dex加強,這種就是第三方的加強,

so加強,主要是把核心代碼放到so檔案,保護代碼,是c語言寫的,

大部分加強都是dex加強,大廠的産品可能使用so加強,因為需要有c工程師才可以,

hook一般是兩種

一個是hook java層,這個就是hookapk的源代碼,這個比較簡單

一個是hook,native層,so庫,這個比較難,需要看懂c語言,看懂彙編代碼,

hook 的前提,你必須要知道函數或者方法名是什麼,否則你怎麼hook呢,

脫殼的原理就是因為不管怎麼加強apk,你都要把源apk的代碼加載到記憶體,運作源apk,這就是脫殼的原理,

### 

 frida架構,主要講這個,

這是一個逆向架構,

安卓逆向4-frida開發,hook,java層

hook 的前提條件,

你首先要知道hook哪一個方法,是以你要先解決脫殼的問題,擷取到源代碼,

 ###

有空經常去看官方文檔,

安卓逆向4-frida開發,hook,java層
安卓逆向4-frida開發,hook,java層

下載下傳的時候注意,

1,你是運作在什麼裝置上,是ios,Android,還是Windows,

2,你運作在手機上,要注意是32位的,還是64位的,一般手機上運作就是arm的包

3,一般運作在電腦的模拟器上的,就是x86,32位的包,夜神就是x86,32位的

這些都是你自己要确認的,

安卓逆向4-frida開發,hook,java層

frida開發的固定套路

有一個列印的python函數,

有一段js腳本,

下面有一段python代碼,執行js腳本,注入到app裡面取,

主要是動中間的js腳本,

要先在模拟器把app運作起來然後再hook

運作這個py檔案,可以列印出來安卓系統的版本,列印所有調用的方法

frida提供了什麼方法,可以看官方文檔,

具體怎麼使用這個frida來逆向,來hook?

##

安卓逆向4-frida開發,hook,java層

分析這個題目,

這個是打開apk進入了這個頁面,應該是在apk的主界面,

是以先apk反編譯,拿到源代碼,如果有殼,要先脫殼,才能拿到源代碼

拿到源代碼之後去找application檔案,看看主界面是在哪一個java檔案,看看這個邏輯是什麼

點選按鈕是發生了什麼?

肯定是先拿到了輸入框的密碼,和他自己的密碼對比,

我們的目的是什麼,

拿到判斷的邏輯,不管是我們輸入什麼,都是正确的,hook到這個函數,修改這個函數,

安卓逆向4-frida開發,hook,java層

hook這個securitycheck的方法,強行改成TRUE,

安卓逆向4-frida開發,hook,java層

不用管這個方法裡面做了什麼,我們隻管輸出,

這樣就繞過了

上面講的都是方法論, 

繼續閱讀