
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、看這篇文章需要的技能1.會編譯 android 源碼(如果你不愿意編譯源碼,還有另外一種辦法,下面我會提供)2.會使用 substrate 或者 xed以上 2 個網(wǎng)上資料很多我就不啰嗦了。一、市面上目前的 hook 和注入工具 市面上目前的 hook 有 substrate,xed,或者一些開源的自己實(shí)現(xiàn)的 hook 和注入,但是會調(diào)用一些系統(tǒng) api 或者自身一些特征,會被加固檢測到,故提供以下文章二、全局注入的三種思路首先注入的目的,就是讓寫的鉤子代碼 xx.so 可以注入到 yyy 程序里面去,這樣的 xx.so 就可以調(diào)用諸如mprotect 和mmap 來修改內(nèi)存屬性,去修改目標(biāo)程
2、序的內(nèi)存可以來實(shí)現(xiàn) got hook 或者 inline,異或修改機(jī)器碼的跳轉(zhuǎn),異或修改數(shù)據(jù)實(shí)現(xiàn)內(nèi)存修改器。故實(shí)現(xiàn)全局注入有三種辦法思路一:替換 zygote, xed 那種,不多說由于其特征會被檢測到,不啰嗦了網(wǎng)上資料很多思路二:從 so 加載的過程看可以修改 linker 源碼,在其加載程序 so 的時候,比如在 do_dlopensoinfo* do_dlopen(const char* name,flags)soinfo* si = find_library( name); /查找動態(tài) if (si != NULL)庫/加載的 sodlopen的 so(試過失敗告終,linker 不允
3、許使用malloc 函數(shù)等基礎(chǔ)函數(shù),而一些 libc 的一些基本函數(shù),如 fgets 依賴于 malloc 的實(shí)現(xiàn))思路三:從 apk 啟動 java 層的代碼看(成功這也是我要介紹的)三、根據(jù)思路三修改 frameworks/base/core/java/android/app/ActivityThread.java 文件在 handindApplication 函數(shù)如下代碼private void handindApplication(AppBindData data)/snownote 2016/12/=全局注入之修改java層=Log.e(snowchangeFrameworkInje
4、ct,-prosname=+sName);File ssfile=new File(/data/local/changeFrameWorkHookConfig.txt);if(ssfile.exists()FileReader ssfr = null; try ssfr = new FileReader(ssfile); catch (FileNotFoundException e) e.prStackTrace();BufferedReader ssbr=new BufferedReader(ssfr); String tagetPackage=null;String soP
5、ath=null;try tagetPackage=ssbr.readLine();/得到進(jìn)程名一般為包名 catch (IOException e) e.prStackTrace();if(tagetPackage!=null)try soPath=ssbr.readLine();/得到要加載的so路徑 catch (IOException e) e.prStackTrace();try ssfr.close();ssbr.close(); catch (IOException e) e.prStackTrace();if(sName.equals(tagetPackage)
6、Log.e(snowchangeFrameworkInject ,tagetPackage+tagetPackage);if(soPath!=null)Log.e(snowchangeFrameworkInject ,start-load-soPath+soPath);System.load(soPath);/=然后編譯源碼,將 changeFrameWorkHookConfig.txt 文件內(nèi)容設(shè)置為第一行,你要注入的程序的進(jìn)程名,一般寫包名就行了 com.carrot.carrotfantasy第二行,你要注入的 so 路徑 /data/local/libhooktest.so把 txt
7、文件 push 到的/data/local/目錄,即可不用實(shí)現(xiàn)注入而讓的鉤子代碼進(jìn)入程序進(jìn)程接下來就是怎么寫 libhooktest.so 這個了1.你可以使用 substrate 提供的 hook api的 hook 代碼編譯成一個 so2.這里我提供一份我以前整合修改好的 hook 代碼,包括 inline hook 和 got hook 大家湊合著用吧(此 ininline hook 中指令重定位部分,參考網(wǎng)友 ele7enxxh,感謝他解決了繁瑣的指令重定位問題,有有對多進(jìn)程進(jìn)行處理哦!)。的可以看上他的完整的他四、不想修改源碼的請看這里 look me!Pull 出你的設(shè)備/syst
8、em/framework/framework.jar 此文件,用 baksmali 反編譯出 smali,java -jar D:run_ProgramFiaksmali_smalibaksmali.jar -oclassout/ framework.jar找到 ActivityThread.smali,把我提供的(我這里是 android4.4)替換回去,再重新編譯回去,java -jar D:run_ProgramFiaksmali_smalismali.jar classout/ -o framework_new.jar如果你別的 android 系統(tǒng),也可以自己寫個 demo 把得到的 smali 自己加入 ActivityThread.smalipush 到設(shè)備就行了,記得重新設(shè)備生效最后附加內(nèi)容inline
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 微特電機(jī)在高精度伺服系統(tǒng)中的應(yīng)用考核試卷
- 有機(jī)合成原料在綠色建筑材料的創(chuàng)新開發(fā)趨勢預(yù)測分析預(yù)測考核試卷
- 冷凍飲品企業(yè)的品牌維權(quán)與法律事務(wù)考核試卷
- 木質(zhì)素在土壤改良劑中的作用考核試卷
- 外貿(mào)生鮮類合同范本
- 梁板安裝合同范本
- 檔案提成合同范本
- 外墻水性氟碳漆合同范本
- 金融門面轉(zhuǎn)讓合同范本
- 水管改造施工合同
- 初中中考語文記敘文閱讀訓(xùn)練訓(xùn)練及答案
- 圍手術(shù)期高血壓患者管理專家共識
- 中國城市人口排名表
- 人教版六年級下冊數(shù)學(xué)(全冊)同步隨堂練習(xí)一課一練
- GB/T 2573-2008玻璃纖維增強(qiáng)塑料老化性能試驗(yàn)方法
- GB/T 1265-2003化學(xué)試劑溴化鈉
- 工程建設(shè)項(xiàng)目管理培訓(xùn)教材課件
- 11-化學(xué)動力學(xué)基礎(chǔ)-2-考研試題資料系列
- 《簡愛》課本劇劇本
- 社區(qū)獲得性肺炎臨床路徑
評論
0/150
提交評論