安卓逆向第六篇-InlineHook(ele7版)

前言

眾所周知xposed只能hook java層缸匪。
那就不能hook so嗎翁狐?
那就得搞xposed+
可+的方案有點(diǎn)多,今天來(lái)試試ele7的InlineHook

參考視頻及項(xiàng)目及文獻(xiàn)

Android Inline Hook詳解
想看原理點(diǎn)這個(gè)↑
(安卓逆向進(jìn)階視頻)03_ART實(shí)現(xiàn)XpHookNaitive兼容安卓10
想看視頻點(diǎn)這個(gè)↑
下面是參考的github項(xiàng)目:
ele7的原項(xiàng)目
ele7的dome項(xiàng)目
珍惜的dome 這個(gè)主要解決的有個(gè)安卓版本不同注入方式不同的問(wèn)題

人話講原理

就是用C++寫了個(gè)so文件,此處命名為Aso凌蔬,原APP要調(diào)用的so此處命名為Bso露懒,

  • 先用xposed hook住原APP加載Bso的流程闯冷,不讓其加載
  • 然后讀到Aso的路徑,讓原APP加載Aso懈词,實(shí)現(xiàn)了替換
  • 然后Aso再去調(diào)用Bso蛇耀,就可在指令前后想咋搞就咋搞了

方案開始

首先是hook的目標(biāo),我選擇的是我自己的設(shè)備檢測(cè)github項(xiàng)目

\color{red}{本項(xiàng)目為64位 hook不到 文末有解決方案}
不出意外我會(huì)更新坎弯。想要這個(gè)版本可以找歷史提交記錄 找到2022年2月23日提交的那版纺涤。
deviceDetection 設(shè)備檢測(cè)---檢測(cè)雞

deviceDetection首頁(yè)

大概樣子就長(zhǎng)這樣,然后箭頭指向的值就是我要改的值抠忘,圖中是已經(jīng)改好的撩炊。本來(lái)就沒(méi)調(diào)試應(yīng)該是0 我給改成了339.

然后是我的hook項(xiàng)目

https://github.com/mengmugai/HookTracerPid

講解

因?yàn)榇a都在里面的自己看就行,這里大概說(shuō)一下崎脉。

生成so

首先是CMakeLists.txt文件定義好衰抑,生成的so名字就會(huì)為libLVmp.so

image.png

版本區(qū)別

因?yàn)?code>android 9.0以上沒(méi)有 doLoad 方法,使用nativeLoad方法了荧嵌。所有要進(jìn)行判斷呛踊。

        int version = android.os.Build.VERSION.SDK_INT;
        Log.e("當(dāng)前系統(tǒng) 版本號(hào) " + version);
        //android 9.0沒(méi)有 doLoad 方法
        if (version >= 28) {
                    hook Runtime.class 的 nativeLoad方法{  
                              if (如果是我要hook的so文件則){
                                        加載我的`libLVmp.so`
                                }
                    }
        else{
                    hook Runtime.class 的 doLoad方法{  
                              if (如果是我要hook的so文件則){
                                        加載我的`libLVmp.so`
                                }
                    }            


      }

大概就是這樣。真是代碼可以到github里面去看啦撮。

c++開發(fā)

JNI目錄結(jié)構(gòu)

主要是把inlinehook目錄搞來(lái)谭网,然后我們主要是寫main.cpp
首先加載走了JNI_OnLoad方法,然后調(diào)用into_TestSo赃春。
image.png

image.png

然后就是我寫的替換它的方法

int My_Java_com_mmg_detection_utils_DebugUtils_getTracerPid(JNIEnv *env, jobject thiz) {
    int ret_value = Source_Java_com_mmg_detection_utils_DebugUtils_gettracerpid(env, thiz);
    LOG(ERROR) << "返回值為:";
//    LOGE(ret_value)
    int my_ret_value=339;
    if (ret_value!=0){
        my_ret_value=0;
    }

    return my_ret_value;
}

手機(jī)就能看到改成339了愉择。就是最開始那個(gè)圖。
還有就是上面那個(gè)getAppSo()方法也不是原有的 自己寫的

image.png

總結(jié)及提醒:

  • 本文還是要與github項(xiàng)目一同看才好理解织中。
  • 這個(gè)只支持32位的hook锥涕。64位不可。
    • 包括我的設(shè)備檢測(cè)的項(xiàng)目也是64位的狭吼。也不行层坠。所以要強(qiáng)制安裝32位app 命令如下:
    • adb install --abi armeabi-v7a -r app-debug.apk 編譯好不運(yùn)行 而是用這個(gè)命令安裝
  • so hook 方案 還有很多
    • Cydia Substrate
    • xHook 這是愛奇藝開發(fā)的got表hook框架 原理又不一樣了
    • Dobby
    • android-inline-hook 這個(gè)跟ele7的同名 但是是字節(jié)跳動(dòng)開發(fā)的 而且支持64位。
    • SandHook
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末刁笙,一起剝皮案震驚了整個(gè)濱河市破花,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌疲吸,老刑警劉巖座每,帶你破解...
    沈念sama閱讀 216,544評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異摘悴,居然都是意外死亡峭梳,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門蹂喻,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)葱椭,“玉大人捂寿,你說(shuō)我怎么就攤上這事〈煲裕” “怎么了者蠕?”我有些...
    開封第一講書人閱讀 162,764評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵窃祝,是天一觀的道長(zhǎng)掐松。 經(jīng)常有香客問(wèn)我,道長(zhǎng)粪小,這世上最難降的妖魔是什么大磺? 我笑而不...
    開封第一講書人閱讀 58,193評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮探膊,結(jié)果婚禮上杠愧,老公的妹妹穿的比我還像新娘。我一直安慰自己逞壁,他們只是感情好流济,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,216評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著腌闯,像睡著了一般绳瘟。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上姿骏,一...
    開封第一講書人閱讀 51,182評(píng)論 1 299
  • 那天糖声,我揣著相機(jī)與錄音,去河邊找鬼分瘦。 笑死蘸泻,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的嘲玫。 我是一名探鬼主播悦施,決...
    沈念sama閱讀 40,063評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼去团!你這毒婦竟也來(lái)了歼争?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,917評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤渗勘,失蹤者是張志新(化名)和其女友劉穎沐绒,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體旺坠,經(jīng)...
    沈念sama閱讀 45,329評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡乔遮,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,543評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了取刃。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蹋肮。...
    茶點(diǎn)故事閱讀 39,722評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡出刷,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出坯辩,到底是詐尸還是另有隱情馁龟,我是刑警寧澤,帶...
    沈念sama閱讀 35,425評(píng)論 5 343
  • 正文 年R本政府宣布漆魔,位于F島的核電站坷檩,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏改抡。R本人自食惡果不足惜矢炼,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,019評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望阿纤。 院中可真熱鬧句灌,春花似錦、人聲如沸欠拾。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)藐窄。三九已至资昧,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間枷邪,已是汗流浹背榛搔。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留东揣,地道東北人践惑。 一個(gè)月前我還...
    沈念sama閱讀 47,729評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像嘶卧,于是被迫代替她去往敵國(guó)和親尔觉。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,614評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容