基於Eclipse Xposed模組開發

2021-09-26 02:06:42 字數 1786 閱讀 8701

0x01 xposed hook原理

0x02 建立android工程

0x03 引入xposed-framework-api

在android專案中新建乙個lib資料夾,將api-82-sources.jar、api-82.jar放入該資料夾中;右鍵api-xx.jar檔案api-xx.jar 選擇build path -> add to build path

參考:0x04 修改androidmanifest.xml

<?xml version="1.0" encoding="utf-8"?>

0x05 編寫入口類建立乙個類,繼承ixposedhookloadpackage類,覆寫handleloadpackage方法,xposed的該方法在任何應用啟動時都會被呼叫,故可以進入任何應用程式的程序,但是一般只針對某個特定的應用

1

package

com.example.hooktest;23

import

static

de.robv.android.xposed.xposedhelpers.findandhookmethod;

4import

android.graphics.color;

5import

android.widget.textview;

6import

de.robv.android.xposed.ixposedhookloadpackage;

7import

de.robv.android.xposed.xc_methodhook;

8import

de.robv.android.xposed.xposedbridge;

9import

de.robv.android.xposed.callbacks.xc_loadpackage.loadpackageparam;

1011

public

class hook implements

ixposedhookloadpackage

22@override

23protected

void afterhookedmethod(methodhookparam param) throws

throwable

29});30}

31 }

view code

xposedbridge.log根log差不多,log列印的語句會出現在控制台,而xposedbridge.log的列印會輸出到xposed框架的啟動程式的日誌功能中,要除錯的話就要到xposed的日誌下檢視log輸出

也可以用 android.util.log輸出到logcat

0x06 指定模組入口

乙個模組可以有多個繼承ixposedhookloadpackage的子類,所以要指定乙個入口讓xposed去執行(指定兩個似乎也是可行的,未測試)。指定乙個入口的步驟:

1、在assets目錄下新建乙個名為xposed_init的檔案。

2、在xposed_init中寫入某個ixposedhookloadpackage子類的完整類名

AspectJ基於xml和基於註解

一 基於xml 執行的切入點中具體方法有返回值,則方法結束會立即執行後置通知,然後再執行環繞通知的放行之後的 2 連線點即所有可能的方法,切入點是正真被切的方法,連線點方法名 其中,只有環繞通知的切入點引數不一樣,是可以放行的切入點 3 異常通知是處理異常 切面類中的異常通知的方法引數列表中異常引數...

拓撲排序(基於dfs 基於佇列)

dfs函式的返回值表示是否成環,若存在有向環,則不存在拓撲排序。不包含有向環的有向圖稱為有向無環圖 dag 可以借助dfs完成拓撲排序,在訪問完乙個結點時把他加入當前拓撲序的首部。舉個栗子 比如乙個 1,2 1,3 2,3 的有向無環圖,就先搜尋1,再遞迴搜尋2,再搜尋3,3沒有出度了,於是放進拓撲...

基於insert update delete的注入

inset注入原理 所謂inset注入就是指我們前端註冊的資訊會被後台通過insert操作插入到資料庫裡邊去,若此時後台沒有做出相應的處理就會構成insert注入。insert注入方法 insert用法例如 insert into member username,pw,phonenum,email,...