網(wǎng)站實(shí)現(xiàn)隸書繁體搜外滴滴友鏈
imei值也成功的hook成功了。到這里我們就用Substrate框架hook了Java層功能。當(dāng)然這些功能Xposed也是可以做到的哦。
四、Hook Native層功能
那么下面繼續(xù)來看如何hook native層的功能,也是本文的重點(diǎn)哦。
第一步:創(chuàng)建一個(gè)Native工程
這里用Eclipse操作,簡(jiǎn)單便捷,有很多人問我為什么不用AS,我想說在我心中Eclipse最好用,AS真心好丑,不想用而已。
第二步:導(dǎo)入Substrate的native功能包
上圖可以看到,需要導(dǎo)入一個(gè)substrate.h頭文件,和兩個(gè)so功能包。native層應(yīng)用都是這么干的,提供一個(gè)頭文件告訴你api,具體實(shí)現(xiàn)在so包中。
第三步:尋找hook的函數(shù)名
這里網(wǎng)上沒有好的hook代碼,這里我們?yōu)榱烁玫牟榭催@個(gè)工具的牛逼之處,弄一個(gè)比較實(shí)際的案例就是hook系統(tǒng)加載dex的函數(shù),這樣我們就可以獲取到每個(gè)應(yīng)用的dex文件了,這種方式對(duì)于早期加固是一個(gè)比較好的脫殼方案。在之前介紹脫殼我們會(huì)使用IDA在指定函數(shù)處下個(gè)斷點(diǎn),那么我們這里如果要hook的話,就需要找到這個(gè)加載dex的函數(shù)名稱,這里一定要記的是導(dǎo)出的函數(shù)名,首先我們導(dǎo)出設(shè)備的libdvm.so文件:system/lib/libdvm.so
然后使用IDA打開,尋找加載dex函數(shù):
切換到Exports視圖頁面,然后搜索dexFileParse函數(shù),點(diǎn)進(jìn)去:
看到了,我們 需要