Android_高級進階_Hook插件開發__在任何APP添加自己的功能

如何在一個陌生的APP中插入自己想要的插件功能!

本章實現目標:教你如何在一個陌生APP中,插入自己想要實現的啓動圖。

開始之前先介紹一下,我們的操作是在反編譯之後的代碼上進行操作的。更要清楚的是java文件在編譯之後對應的語言是smali語言。如下:

在這裏插入圖片描述


ok,進入我們的正題,如何以上工具不清楚的請看我另一篇文章介紹!

第一步:首先我們通過工具Killer,反編譯你要修改的App。
第二步:在Android Studio新建一個工程,然後在裏面寫上你要添加插件的功能的代碼,圖片等等一系列的功能(就是我們的啓動圖功能)
第三步:通過Killer工具反編譯自己的新建功能的MyApp
第四步:修改編譯smali文件,實現自己想要的效果。

		  修改smali文件我總結了一下也分爲及步驟:
		  1、在陌生App中添加啓動圖圖片
		  2、添加新的XML佈局
		  
		  /** 對控件的添加*/
		  3、添加ID,在反編譯的XML中對應的控件都會有一個 android:id="@id/******" 這樣屬性, "****"是任意的
		  4、然後全局搜索******這個屬性獲取ID,在R$id.smali文件下獲取
		  5、然後通過獲取的ID全局搜索看哪裏用到, 然後粘貼到自己的陌生App中
		  
		  /** 對資源圖片的添加*/
		  6、在values文件下里面有public.xml,  這裏面存放着索引ID的指向,每個都是唯一的,然後搜索back圖片名稱找到對應的ID
		  7、然後搜索找出來的ID,看哪裏有引用,找到後複製到自己的陌生App中
		  8、需要注意的是,使用drawable還會有對應的smali文件,所以我們還要在R$drawable.smali文件中添加對應的信息
		  9、在R$drawable.smali中搜索圖片名稱back,找到對應的ID,然後複製到自己陌生App中
		  
		  /** 修改ids.xml(無論是添加什麼都要在ids裏面添加一下)*/
		  10、在ids裏面搜索imageview(就是我們上面的******)然後添加到自己陌生App中
		
		/** 重點: 修改public.xml中的ID值 */
		11、我們通過上面操作已經把對自己的id複製到陌生App中了,但是原本里面ID是連續的,我們複製過來的ID插進來以後不連續了,所以我們要更改一下ID,按陌生App的ID,複製一下,按規律改下值即可。改好以後別忘了全局替換,
		  
		  /** XML的添加*/
		  12、在R$layout.smali文件中搜索xml名稱找到對應id, 全局搜索一下id的引用全都 複製到陌生App中,共有3處:R$layout.smali、public.xml、還有一個是activity類中的引用。
		  13、運行之後可能會報錯,應該是跳轉首頁的包名路徑不對要改成陌生APP的包名路徑

經過以上,是比較教科書是的操作流程,無論是添加複雜功能,還是簡單的功能,都是這樣操作,可能有點繁瑣,熟悉後就好了。


以下是我操作的截圖。對應上面序號操作!

1、
在這裏插入圖片描述
3-4、
在這裏插入圖片描述
在這裏插入圖片描述

6-9、在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述

10、

在這裏插入圖片描述

在這裏插入圖片描述
11、
在這裏插入圖片描述

在這裏插入圖片描述
12、

在這裏插入圖片描述

在這裏插入圖片描述
13、

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章